“停止运行这个脚本?”错误

时间:2008-11-17 22:42:34

标签: javascript jquery ajax internet-explorer

我正在开发一个广泛使用JavaScript(jQuery)的网站。我经常让IE'停止运行这个脚本?'我尝试关闭浏览器时出现错误对话框。

我猜这个问题发生的原因是网站是一个使用AJAX的网页,所以没有回发来重置IE执行的命令数。

客户端注册表黑客攻击不是一种选择。

有没有人知道解决此错误的方法?

更新:该页面有一个(~10个)间隔计时器,可以间隔30或60秒间隔轮询。

8 个答案:

答案 0 :(得分:4)

我也遇到过这个问题,并通过划分连续的DOM执行来克服这个问题。对于这种方法,我使用了setTimeout函数。完全解决此问题取决于您如何划分连续执行。

答案 1 :(得分:3)

你偶然使用window.onunload处理程序吗?如果这样做,你可能会检查那里没有无限循环。

要检查,请在您的javascript底部执行:

window.onunload = null;

再次测试。

答案 2 :(得分:2)

问题:“停止运行此脚本?”错误

解决方案:您可以说这是一个兼容性问题或错误,因为在Mozilla中运行相同的东西没有任何错误,但它在IE 6,7或8中运行,并显示错误消息“停止运行此脚本”。 Microsoft提供了一个补丁来修复IE中的这个问题。因此,请转到以下链接并下载“Microsoft Fix It”并安装它并重新启动浏览器,您将永远不会看到“停止运行此脚本”错误: http://support.microsoft.com/kb/175500#FixItForMeAlways

答案 3 :(得分:1)

你的代码中只有一些长时间运行的脚本/无限循环。更多细节可能会得到更准确的答案。

如果您的网页使用了大量的时间间隔,那么您需要在离开页面之前取消它们。使用window.onunload清除所有间隔。

答案 4 :(得分:1)

我只是blogged about this并且我认为这是一个非常时尚的解决方案。所以看看吧。如上所述,我的解决方案只是将长时间运行的操作分解为块,但我提供了一个很好的实用程序类来执行此操作。

答案 5 :(得分:0)

也可以考虑将长操作拆分为$(document).ready()和$(window).load()

答案 6 :(得分:0)

我刚刚遇到了一个问题,即jquery选择器过于笼统:例如: $("*")

答案 7 :(得分:0)

就像提到$(“*”)的人一样,尽量不要使用$(this)作为自定义事件的绑定选择器,这会导致我最近的脚本破坏系统的加载时间。