最近遇到一个需求,要实现浏览器弹窗功能。网上搜了一大堆弹窗代码,全军覆没,没有一个有用的。

然后我就总结一下自己失败的道路。。。

关于弹窗效果,我们首先想到的肯定是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浏览器),不阻止弹窗,什么形式都能弹出来。(不知道是不是腾讯爸爸也要用它来做什么勾当 @.@)

 

posted on 2017-05-19 16:00  程旭猿  阅读(909)  评论(0编辑  收藏  举报