最近需要一个不被屏蔽的弹出窗口代码,至少也得是不易被拦截的弹出窗口代码,找了好久,发现淘宝网的弹出广告做得比较人性化,不会令人很反感。搜索一番,摘录备用:
淘宝网的JS弹出窗口代码采用了Cookies,24小时内只弹出一次窗口,但并不是打开网页就直接弹出,是用JS控制链接a标签,点击网页中任意一个超级链接就会弹出广告窗口。
测试弹出窗口代码如下:
//写入COOKIE
function setCookie(name,value){
var Days = 1;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
//读取COOKIE
function getCookie(name){
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)) return unescape(arr[2]);
else return null;
}
window.attachEvent("onload", function(){
if (getCookie("popWin")) return false;
var o = document.getElementsByTagName("a");
for (var i=0; i<o.length; i++){
o[i].attachEvent("onclick", function(){
if (!getCookie("popWin")){
setCookie("popWin", "true");
window.open("http://blog.fufuok.com/", "popWin", "toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes, location=yes, status=yes");
window.focus();
}
});
}
});
点击链接弹出窗口
也可以设置弹出窗口的大小和位置,没IE6,没测试过,IE7等选项卡浏览器没有效果。
修改对应的代码:
window.open("http://blog.fufuok.com/", "popWin", "height=700, width=940, top=0, left=1000, toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes, location=yes, status=yes");
让弹出窗口在当前窗口的背后,可以这样写,没IE6,没测试过,IE7等选项卡浏览器没有效果。
popWinstr = window.open(http://blog.fufuok.com/, "popWin", "height=700, width=500, top=0, left=1000, toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes, location=yes, status=yes");
popWinstr .blur();
window.focus();
---
除此之外,使用showModalDialog可以直接弹出窗口,而且不易被拦截。
window.showModalDialog('http://blog.fufuok.com/');
要弹出最大化窗口,可以修改代码为:
window.showModalDialog('http://blog.fufuok.com/','','dialogWidth:'+screen.availWidth+';dialogHeight:'+screen.availHeight+';');
---
网页中使用弹出窗口的确是不友好的,各式各样的屏蔽弹出窗口的招数使得正当想用一下弹窗的时候又麻烦了,先整理这两个吧。能使用DIV窗口的时候就尽量用DIV来作提示为好,像百度空间的操作提示代码、Light Window等都是一些很好的过渡办法。