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

我注意到相当多的人遇到了这个问题,而且还没有找到解决该问题的非常实用的方法。

关于HTML文档开头的脚本标签和元标签的顺序,似乎还有其他解决方案。我还没有确认,但这仍然是一个链接:
What causes the error "Can't execute code from a freed script"

我也知道此问题的解决方案,因此我将其发布在下面

最佳答案

首先,您需要找到消息的来源。

IE以其糟糕的错误报告而闻名,但幸运的是IE9似乎有些能力。如果此错误发生在IE6,IE7或IE8中,那么它也将在IE9中发生,因此请使用IE9进行调试(出于理智的考虑)

在IE9中打开webdeveloper控制台(按F12键),然后逐步执行步骤以产生此错误。

IE9现在应该在控制台上为您提供文件和行指示,是的!

通常会出错的是在setTimeout或Ajax请求的延迟下执行的回调。如果在其中定义了回调的窗口,文档或框架被卸载,那么当它尝试执行回调函数时,您将收到此消息。

似乎其他浏览器都忽略了这个问题,我想这很好。为了使IE做到这一点,只需将回调包装在try-catch块中(我不知道回调的计算结果,我认为它的计算结果未定义)。如果您想进行更精确的错误处理,或者如果您真的想在发生这种情况时采取措施,则可以这样做,请在此处发布信息,因为我很好奇哪种用例实际上需要这样做。

关于javascript - 无法从释放的脚本执行代码-IE6 IE7 IE8 IE9,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5812180/

10-13 05:20