今天在處理程式的過程中,發現window.open方法會被瀏覽器攔截,導致無法打開新頁面,查閱相關資料後發現,主要原因是瀏覽器為了維護用戶安全和體驗,禁止在javascript中直接使用window.open(url)來打開新的鏈接,window.open(url,”_self”)改變當前的視窗是可 ...
今天在處理程式的過程中,發現window.open方法會被瀏覽器攔截,導致無法打開新頁面,查閱相關資料後發現,主要原因是瀏覽器為了維護用戶安全和體驗,禁止在javascript中直接使用window.open(url)來打開新的鏈接,window.open(url,”_self”)改變當前的視窗是可以生效的。為了實現window.open打開新視窗不被瀏覽器攔截,我們只能通過模擬用戶操作的方式來實現。
我們可以模擬用戶點擊a標簽的操作來實現這個功能,代碼如下:
//新視窗打開網頁
function openWin(url) {
try {
var el1 = document.createElement('a');
el1.setAttribute("target", "_blank");
el1.setAttribute("id", "openWin");
el1.setAttribute("href", url);
document.body.appendChild(el1);
document.getElementById("openWin").click();//點擊事件
document.body.removeChild(el1);
}
catch (e) {
window.open(url);
}
}
首先創建了個A標簽,然後將url賦值給a標簽,將設置好的a標簽添加到Body中,js調用a標簽的click事件。
擴展閱讀:Javascript讀取和設置Cookie值。
備註:此文章轉載自博主個人技術站點:IT技術小趣屋。原文鏈接:查看原文。