我正在使用此代码来检测浏览器的弹出窗口阻止程序。当前脚本在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>
答案 0 :(得分:0)
根据the documentation for IE's popup blocker,您唯一需要检查的是newWin
是null
:
网页作者应检查任何窗口的NULL返回值 你打开了。这将指示弹出窗口是否打开 成功并允许您处理任何一种情况。
如果您的软件自动打开窗口,它们将被阻止。 寻找替代方法来执行前面描述的相同操作 在这份文件中。打开窗户的最佳方法是拥有 客户点击链接或图形元素。
也许您应该将显示警报的条件分成几个检查,其中一个测试专门针对IE(并且不要在同一个||...
中添加if
)。为他们应该使用的任何浏览器编写其他测试(也可能还检查null和其他东西)。
一般来说,不要使用弹出窗口 ...