错误︰ 您不能在 Windows XP Service Pack 2 中使用 window.setTimeout(window.close,1) 方法关闭 Internet Explorer 窗口


症状


单击用于关闭 Microsoft Internet Explorer 窗口的超链接时,Internet Explorer 窗口不会关闭。在 Microsoft Windows XP Service Pack 2 中发生此问题。

原因


超链接使用window.setTimeout(window.close,1)方法来关闭 Internet Explorer 窗口。

解决方法


若要变通解决此问题,请使用window.setTimeout("window.close()", 1)方法或window.close()方法来关闭 Internet Explorer 窗口。

可以使用下面的代码示例演示此替代方法。
<html>
<body>
<script>
function TimeoutCloseWindow2()
{
window.setTimeout("window.close()", 1);
}
function DirectCloseWindow()
{
window.close();
}
</script>
<p>
<a href="javascript:TimeoutCloseWindow2();">Workaround 1: Click here to try to close the window by using window.setTimeout("window.close()", 1)</a>
</p>
<p>
<a href="javascript:DirectCloseWindow();">Workaround 2: Click here to try to close the window by using window.close()</a>
</p>
</body>
</html>

状态


Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的故障。

详细信息


重现问题的步骤

  1. 单击开始单击
    运行,键入记事本,然后单击确定
  2. 将下面的代码示例放在记事本。
    <html>
    <body>
    <script>
    function TimeoutCloseWindow()
    {
    window.setTimeout(window.close, 1);
    }
    </script>
    <a href="javascript:TimeoutCloseWindow();">Click here to try to close the window by using window.setTimeout(window.close, 1)</a>
    </body>
    </html>
  3. 将该文件保存为 Repro.html。
  4. 使用 Internet Explorer 打开 Repro.html 文件。

    注意:如果 Internet Explorer 显示下面的消息时,单击消息,然后单击允许阻止的内容

    为了帮助保护您的安全,Internet Explorer 已经限制此文件显示无法访问您的计算机的活动内容。单击此处以查看选项。
  5. 单击单击此处以关闭窗口使用 window.setTimeout (window.close,1)的超链接。

    您希望 Internet Explorer 窗口关闭。但是,Internet Explorer 窗口不会关闭。