如何弹出 window.open 窗口

原文在 你还敢使用window.open弹广告吗?。现在浏览器大都禁止了 onload window.open,这个对淘宝相关代码的分析我倒是第一次看到。

显示更多

有意思的就是后面这段

var popuped = false;

var popAd = function() {

if (popuped) return;

popuped = true;

var purl=’http://www.taobao.com/promotion/defaultbackpop.html’;

var w=760;

var h=480;

var adPopup = window.open(‘about:blank’, ‘_blank’,'width=’+w+’,height=’+h+’, …’);

adPopup.blur();

adPopup.opener.focus();

adPopup.location = purl;

$E.removeListener(document.body, ‘click’, arguments.callee);

return adPopup;

}

try {

popAd();

} catch (e) {

popuped = false;

$E.on(document.body, ‘click’, popAd);

}

}

$E.on(window, ‘load’, _init);

先尝试 onload 弹出窗口,不行(try catch)就给 document.body 的 onclick 加上弹出。这下子变成用户主动的交互,很多浏览器的过滤器可能就会忽略掉。

我没有测试,我对这样的的技巧很反感,不道德。但我估计如果firefox在 about:config 禁用 window.open 这段代码还是没用。opera 的处理方式可能也不太一样。

这是一个据说通用(Cross-window)的弹出窗口代码。

显示更多

相关资料:

浏览器的广告拦截能力测试

popup – quirksmode.org

Leave a Reply

相关日志: