javascript背投广告代码的完善
程序员文章站
2022-11-08 14:55:23
背投广告,既然被称为广告,那如何才能让广告主的钱花得实在,花得乐意呢? 我们可以增加判断,如果该弹出窗口被浏览器拦截,则只要用户点击页面就触发 window.op...
背投广告,既然被称为广告,那如何才能让广告主的钱花得实在,花得乐意呢?
我们可以增加判断,如果该弹出窗口被浏览器拦截,则只要用户点击页面就触发 window.open 事件,这样一般不会拦截,浏览器会认为这是用户的默认行为。
代码可编写如下:
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);
}
当然如果用户浏览器安装了拦截插件,那很有可能不会弹出(比如 firefox 的 noscript 插件,就不允许任何弹出窗)。方法不是绝对的,也不是最好的,只是用最少的时间来做最效率的事情。
ps:可以通过模拟 form 提交的方式来弹出窗口,穿越性(相对于一般拦截弹窗的插件)很好,不过无法设置 sfeatures 参数内容
我们可以增加判断,如果该弹出窗口被浏览器拦截,则只要用户点击页面就触发 window.open 事件,这样一般不会拦截,浏览器会认为这是用户的默认行为。
代码可编写如下:
复制代码 代码如下:
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);
}
当然如果用户浏览器安装了拦截插件,那很有可能不会弹出(比如 firefox 的 noscript 插件,就不允许任何弹出窗)。方法不是绝对的,也不是最好的,只是用最少的时间来做最效率的事情。
ps:可以通过模拟 form 提交的方式来弹出窗口,穿越性(相对于一般拦截弹窗的插件)很好,不过无法设置 sfeatures 参数内容
上一篇: 用醋洗脸有什么好处大汇总
下一篇: 点击小图查看原图