我們可以增加判斷,如果該彈出窗口被瀏覽器攔截,則只要用戶點(diǎn)擊頁(yè)面就觸發(fā) window.open 事件,這樣一般不會(huì)攔截,瀏覽器會(huì)認(rèn)為這是用戶的默認(rèn)行為。
代碼可編寫如下:
復(fù)制代碼 代碼如下:
var $E = YAHOO.util.Event;
var adPopup;
var popAd = function(sURL,sName,sFeatures,bReplace) {
if (adPopup) return;
if(sName == undefined) {
sName = '_blank';
};
if(sFeatures == undefined) {
sFeatures = '';
};
if(bReplace == undefined) {
bReplace = false;
};
adPopup = window.open(sURL,sTarget,sFeatures,bReplace);
adPopup.blur();
adPopup.opener.focus();
$E.removeListener(document.body, 'click', arguments.callee);
}
try {
popAd();
} catch (e) {
$E.on(document.body, 'click', popAd);
}
當(dāng)然如果用戶瀏覽器安裝了攔截插件,那很有可能不會(huì)彈出(比如 Firefox 的 noscript 插件,就不允許任何彈出窗)。方法不是絕對(duì)的,也不是最好的,只是用最少的時(shí)間來做最效率的事情。
PS:可以通過模擬 form 提交的方式來彈出窗口,穿越性(相對(duì)于一般攔截彈窗的插件)很好,不過無法設(shè)置 sFeatures 參數(shù)內(nèi)容
JavaScript技術(shù):javascript背投廣告代碼的完善,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。