Javascript Can';t从释放的脚本执行代码-IE6 IE7 IE8 IE9

Javascript Can';t从释放的脚本执行代码-IE6 IE7 IE8 IE9,javascript,internet-explorer-8,internet-explorer-7,internet-explorer-6,internet-explorer-9,Javascript,Internet Explorer 8,Internet Explorer 7,Internet Explorer 6,Internet Explorer 9,我今天在IE6中遇到了这个问题(但在所有最新版本的IE上都可以重现) 我注意到很多人遇到了这个问题,我还没有看到一个非常实用的方法来解决这个问题 关于HTML文档头部的脚本标记和元标记的顺序,似乎还有其他一些解决方案。我还没有确认这一点,但这里有一个链接: 我也知道这个问题的解决方案,所以我将它发布在下面。首先,您需要找到消息的来源 IE以其糟糕的错误报告而闻名,但幸运的是IE9似乎有些能力。如果这个错误发生在IE6、IE7或IE8中,那么它也会发生在IE9中,所以使用IE9进行调试(为了您的

我今天在IE6中遇到了这个问题(但在所有最新版本的IE上都可以重现)

我注意到很多人遇到了这个问题,我还没有看到一个非常实用的方法来解决这个问题

关于HTML文档头部的脚本标记和元标记的顺序,似乎还有其他一些解决方案。我还没有确认这一点,但这里有一个链接:


我也知道这个问题的解决方案,所以我将它发布在下面。首先,您需要找到消息的来源

IE以其糟糕的错误报告而闻名,但幸运的是IE9似乎有些能力。如果这个错误发生在IE6、IE7或IE8中,那么它也会发生在IE9中,所以使用IE9进行调试(为了您的理智)

在IE9中打开webdeveloper控制台(按F12)并运行产生此错误的步骤

IE9现在应该在控制台上给你一个文件和行指示,耶

通常出现的错误是在延迟一段时间后执行回调,要么是setTimeout,要么是Ajax请求。如果在中定义了回调的窗口、文档或框架已卸载,则当它尝试执行回调函数时,您将收到此消息


似乎其他浏览器忽略了这个问题,我想这很好。要让IE也这样做,只需将回调包装在一个try-catch块中(我不知道回调的计算结果是什么,我不认为它的计算结果是未定义的)。如果你想有更精确的错误处理,或者如果你真的想在发生这种情况时采取行动,你可能可以这样做,请在这里发表一篇文章,因为我很好奇什么样的用例会真正需要这样做。

解决方案-确保将所有元语句放在任何脚本语句之前

如果您的页面使用多个帧,则此错误可能是由于在从页面中删除初始帧后,在一个帧中初始化的对象在另一个帧中使用

发生这种情况时,根据具体情况,您可能希望:

  • 检查代码以查找潜在的内存泄漏
  • 如果这些对象表示您实际上希望在帧之间传递的某些数据,则考虑使用它们的严格化形式。

您是否自己测试?或者这是从另一个网站复制的?我根本没有元标记,我仍然会遇到这个错误