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

How to detect popup blocker in IE

本文关键字:窗口 程序 检测 IE      更新时间:2023-09-26

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

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

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

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

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

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