天天看點

【轉載】window.open被浏覽器攔截的解決辦法

今天在處理程式的過程中,發現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事件。

此文轉載自部落客個人網站:IT技術小趣屋,原文連結:檢視原文。

繼續閱讀