2

我在这里有这段代码:

<?php
    error_reporting(0);
    if(isset($_GET['bd'])){
?>

<script>
    window.close();
</script>


<?php

}

在 Chrome 中可以正常工作,但在 FireFox 中无法正常工作。这有一个已知问题吗?如何让它在上述浏览器中始终如一地工作?

4

2 回答 2

8

在大多数浏览器中,window.close()只有当有window问题的有opener. 通过 an opener,我的意思是你有一个parent window打开 a 的 a child window。只有child window可以由 a 关闭window.close()

于 2012-05-21T15:08:57.173 回答
4

对于 Firefox,权威参考是 MDN。从那里引用:

仅允许为使用 window.open 方法的脚本打开的窗口调用此方法。如果窗口不是由脚本打开的,JavaScript 控制台中会出现以下错误:脚本可能不会关闭不是由脚本打开的窗口。

来源:https ://developer.mozilla.org/en/DOM/window.close

由于您的网页是在服务器端构建并定期打开的,而不是通过 javascript,因此它不适用于您的情况。

还要注意 Internet Explorer 中的不同行为:

在未使用脚本打开的窗口上调用 window.close 方法会显示一个确认对话框。使用脚本关闭最后运行的 Windows Internet Explorer 实例也会打开确认对话框。

所以这将起作用,但需要确认。

最后,我在 Opera 上对其进行了测试,它甚至可以在定期打开的窗口上运行,就像你在 Chrome 中所说的那样。

于 2012-05-21T15:10:03.560 回答