0

我正在使用此代码来检测浏览器的弹出窗口阻止程序。当前脚本在 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>
4

1 回答 1

0

根据IE 的弹出窗口阻止程序的文档,您唯一需要检查的是是否newWinnull

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

如果您的软件自动打开窗口,它们将被阻止。寻找替代方法来做与本文档前面所述相同的事情。打开窗口的最佳方式是让客户单击链接或图形元素。

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

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

于 2013-11-11T05:51:32.257 回答