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);
}
对于背投广告的原理来说并没有什么难度,无非打开的窗口失去焦点(blur),而原来页面得到焦点(focus)。但对于流行的浏览器来说,如果非用户行为的弹出窗口(即 onload 时,直接window.open ),会被浏览器默认拦截。
背投广告,既然被称为广告,那如何才能让广告主的钱花得实在,花得乐意呢?
我们可以增加判断,如果该弹出窗口被浏览器拦截,则只要用户点击页面就触发 window.open 事件,这样一般不会拦截,浏览器会认为这是用户的默认行为。