【发布时间】:2017-06-29 14:15:16
【问题描述】:
我有以下网页:
<html>
<head>
</head>
<body>
<h1>Wait until closed</h1>
<script>
function wait(popup){
if (!popup.closed){
setTimeout(wait,1000,popup);
} else {
alert('closed');
}
}
var popup = window.open("http://www.google.com", '', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes, width=1000 , height=800, top=' + screen.top + ', left=' + screen.left);
wait(popup);
</script>
</body>
</html>
当我使用 Chrome 或 Firefox 打开它时,我在关闭弹出窗口后看到消息“关闭”。然而在 IE11 中什么也没有发生。这种行为差异的解释是什么? (即,IE11 标准的哪一部分不遵守,或者在这种情况下有不同的解释,如果有的话?)
编辑:阅读建议的答案,我尝试将setTimeout(wait,1000,popup) 更改为setTimeout(function() {wait(popup);},1000),如下所示:
<html>
<head>
</head>
<body>
<h1>Wait until closed</h1>
<script>
function wait(popup){
if (!popup.closed){
setTimeout( function() {
wait(popup);
}, 1000 );
} else {
alert('closed');
}
}
var popup = window.open("http://www.google.com", '', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes, width=1000 , height=800, top=' + screen.top + ', left=' + screen.left);
wait(popup);
</script>
</body>
</html>
但这也不起作用。
编辑: cmets 表明这是重复的,但由于尝试根据建议的答案更改代码直到现在对我不起作用,我通过要求更改上面的代码,以便它在 IE11 中工作(希望 SO 规则允许这样做)。显示的代码不起作用。
【问题讨论】:
-
我好糊涂,现在已经解决了吗?
-
@Huangism 不,我尝试遵循建议,但目前这些对我不起作用。
-
@user7408846 您的 EDIT 部分表明现在可以在 IE11 中使用,不是这样吗?
-
@Huangism 我改了问题的结尾,希望现在更清楚了。
-
@user7408846 我的机器上没有 IE11,但我建议您逐步检查一下到底是什么不工作
标签: javascript internet-explorer asynchronous