最近遇到一个需求,要实现浏览器弹窗功能。网上搜了一大堆弹窗代码,全军覆没,没有一个有用的。
然后我就总结一下自己失败的道路。。。
关于弹窗效果,我们首先想到的肯定是window.open()。。。
1.window.open(): 有三种弹窗形式,分别是 _self 、 _blank 、 _top,我需要的是_blank形式的效果,可偏偏这种形式被浏览器拦截了。
2.a标签模拟点击 :
<a href="http://www.baidu.com" target="_blank">click me</a>
<script>
var oA = document.getElementsByTagName("a")[0];
oA.click();
</script>
还是被浏览器阻止 (利用form标签的action属性与此方法类似,同样失败)
3.利用 comfirm()利用用户点击来弹出新窗口:
var r=confirm("Press a button!");
if (r==true) {
window.open("http://www.baidu.com");
}
else {
window.open("http://www.baidu.com");
}
然并卵,浏览器还是拦截。
4.延时弹窗:setTimeout(function(){
window.open(url);
},1000)
拦截!!!!!!
还试了 ajax请求成功时 弹出新窗口,监听鼠标键盘事件等等等等(就不一一阐述了),反正能想到的,网上能搜到的方法都用了,最终以失败告终。
不过有一个神器的浏览器(QQ浏览器),不阻止弹窗,什么形式都能弹出来。(不知道是不是腾讯爸爸也要用它来做什么勾当 @.@)