中国设计秀欢迎投稿
联网
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
域名注册 虚拟主机 广州网站设计 域名注册 广州网站建设 上海网站建设 虚拟主机 广州网页设计 签名设计 虚拟主机 域名注册 acg王国 ACG玩家
求创科技
上海网麒科技
中国福网
数字引擎
招聘求职
中国互联
时代互联
中资源
当前位置:网站综合首页 >> 网页JS特效 >> 浏览器窗口 >> 防止屏蔽,背投广告代码的完善

防止屏蔽,背投广告代码的完善

来源:中国设计秀    作者:佚名    点击:288     加入收藏    发表评论
0
顶一下
关键字:代码 js js特效
中国品牌设计网

  对于背投广告的原理来说并没有什么难度,无非打开的窗口失去焦点(blur),而原来页面得到焦点(focus)。但对于流行的浏览器来说,如果非用户行为的弹出窗口(即 onload 时,直接window.open ),会被浏览器默认拦截。

  背投广告,既然被称为广告,那如何才能让广告主的钱花得实在,花得乐意呢?

  我们可以增加判断,如果该弹出窗口被浏览器拦截,则只要用户点击页面就触发 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 参数内容

2008-03-10 11:31:12    出处:中国设计秀cnwebshow.com
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口