none
IE7 js bug report RRS feed

  • 常规讨论

  • 最近在测试时发现window.close()函数会造成js error 发生。

    代码大致如下:
    <javascript type="text/javascript">
    var a = '2009/1/1';
    window.close();
    for(var i = 0; i < 500000;i++)
    {
      b = new Date(a);
    }
    </script>
    如上代码,偶尔就会发生“a没有定义”的错误。

    经测试,发现IE的window.close()执行后,后面的代码有时会被执行,有时不被执行,感觉上是window.close()向浏览器发送关闭的消息后就继续执行下去,浏览器开始销毁堆栈后造成a被dump掉,而此时js解释器正在执行b = new Date(a),此时a已经被dump掉,所以出现js error,目前没有更合理的解释,如果以上解释成立应该就是IE的bug吧,另外,经测试firefox没有同类错误,FF的window.close()执行后仍然会执行问所有代码才会关闭窗口。另外,不是所有机器都能再现这个bug的,貌似和机器的性能有关,IE的插件装的多了更容易发生。
    • 已移动 小鱼儿 2009年5月19日 9:45 ([Loc]From:Windows Vista 开发相关讨论)
    • 已更改类型 孟宪会Moderator 2011年3月7日 12:48
    2009年1月14日 7:30