我今天在 IE6 中遇到了这个问题(但在所有最新版本的 IE 上都可以重现)。
我注意到很多人遇到过这个问题,但我还没有看到解决这个问题的非常实用的方法。
关于 HTML 文档头部的脚本标签和元标签的顺序,似乎还有一些其他的解决方案。我还没有确认这一点,但这里有一个链接: What causes the error "Can't execute code from a freed script"
我也知道这个问题的解决方案所以我把它贴在下面
最佳答案
首先你需要找到消息的来源。
IE 以其糟糕的错误报告而闻名,但幸运的是 IE9 似乎有点能力。如果这个bug出现在IE6、IE7或IE8中,那么在IE9中也会出现,所以使用IE9调试(为了你的理智)
在 IE9 中打开 Web 开发人员控制台(按 F12)并运行产生此错误的步骤。
IE9 现在应该在控制台上给你一个文件和行指示,耶!
通常会出错的是在延迟一段时间后执行的回调,无论是通过 setTimeout 还是因为 Ajax 请求。如果定义了回调的窗口、文档或框架被卸载,那么当它尝试执行您的回调函数时,您将收到此消息。
其他浏览器似乎忽略了这个问题,我想这很好。要让 IE 做同样的事情,只需将回调包装在一个 try-catch block 中(我不知道回调会评估什么,我认为它不会评估为未定义)。如果你想要更精确的错误处理,或者如果你真的想在发生这种情况时采取行动,你可能会这样做,请在这里发帖,因为我很好奇什么样的用例实际上需要这个。
关于javascript - 无法从释放的脚本执行代码 - IE6 IE7 IE8 IE9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5812180/