如何检测IE中的弹出窗口阻止程序

时间:2013-11-11 05:33:56

标签: javascript

我正在使用此代码来检测浏览器的弹出窗口阻止程序。当前脚本在chrome和firefox中工作正常但在IE浏览器中没有。在IE中天气弹出窗口打开或关闭警报是由IE检测到的。


 <html>
 <head>
  <title>Contentverse Online</title>
  </head>
  <script>
   function closeCurrentWindow() {
        var version=0;
        if (navigator.appVersion.indexOf("MSIE")!=-1){
                    var temp=navigator.appVersion.split("MSIE");
                    version=parseFloat(temp[1]);
        }
        if (version>=5.5 && version<=6) {
                    this.focus();
                    self.opener = this;
                    self.close();
        } else {
                    window.open('','_parent','');
                    window.close();
        }
    }
</script>
 <body>
 <script>

     var newWin = window.open("Sign.asp?Home=C:/Program Files/ViewWise                Online&VWOFlavor=Full","myWindow",'top=0,left=0,width='+screen.width+',height='+screen.height+',status=yes,resizable=no,scrollbars=yes');

     if (!newWin || newWin.closed || typeof newWin.closed == 'undefined' || newWin.outerHeight == 0){
     alert("Please Enable Popup For this Site...");

    } 
 else
  {

 }
   </script>
  </body>
   </html>

1 个答案:

答案 0 :(得分:0)

根据the documentation for IE's popup blocker,您唯一需要检查的是newWinnull

  

网页作者应检查任何窗口的NULL返回值   你打开了。这将指示弹出窗口是否打开   成功并允许您处理任何一种情况。

     

如果您的软件自动打开窗口,它们将被阻止。   寻找替代方法来执行前面描述的相同操作   在这份文件中。打开窗户的最佳方法是拥有   客户点击链接或图形元素。

也许您应该将显示警报的条件分成几个检查,其中一个测试专门针对IE(并且不要在同一个||...中添加if)。为他们应该使用的任何浏览器编写其他测试(也可能还检查null和其他东西)。

一般来说,不要使用弹出窗口 ...