在加载的页面上停止 Javascript 执行?

Posted

技术标签:

【中文标题】在加载的页面上停止 Javascript 执行?【英文标题】:Stopping Javascript execution on loaded page? 【发布时间】:2010-09-03 17:25:02 【问题描述】:

  我没有源代码访问权限的网站中有一些问题代码。加载页面后,出现问题(至少在我的 Win 和 FF 版本中),使得 ajax 调用被重复而不是一次。这很快就把我锁在萤火虫和几乎所有其他东西之外,所以我所能做的就是关闭标签。

 我想要的是一个简单的按钮,我可以快速点击它来停止执行脚本......但是我在谷歌上搜索和翻找我似乎找不到一个?我无法在 firebug 中设置断点,因为我很快就被锁定了,因为它正在与所有 ajax 调用作斗争......

 我肯定在这里遗漏了一些简单的东西吗?

莱尔

【问题讨论】:

【参考方案1】:

您可以使用Fiddler 通过自动回复器劫持 javascript 代码,并注释掉进行所有调用的代码部分,以便您找出问题所在。

【讨论】:

是的!不完全是我所要求的,但甚至更好:) 我将能够在 js 中设置一些适当的断点并弄清楚发生了什么,就好像我可以访问源代码一样 :D 认为我会使用非常感谢您的指点【参考方案2】:

Firebug 有一个“Break on Next”按钮。它在下一次执行脚本时添加一个断点。

【讨论】:

这是“某种”停止 javascript 执行的方法。它并没有真正停止它,但它确实会暂停执行,以便您分析正在发生的事情,并可能深入了解导致无限循环的原因。 嗯,这种“类型”对我有用,但似乎所有 ajax 调用仍在发生,这将事情拖慢到无法使用的程度:(【参考方案3】:

您可以禁用 Javascript

工具 -> 选项 -> 内容 -> 禁用 Javascript(我现在使用的是法语版本,不过名称应该不错)

或使用NoScript

【讨论】:

我知道如何禁用 javascript,这不是问题。我需要在脚本开始执行后停止它【参考方案4】:

Javascript 是单线程的。这意味着您不能中断正在执行的脚本。

【讨论】:

Javascript 单线程与中断脚本有何关系? 您不能用该页面上的另一个脚本来中断一个页面上运行的脚本。 明白 :) 虽然这并不意味着浏览器不能中断脚本。 同意,我之前看过 firefox 会弹出一个窗口,如果它认为某个脚本已经发疯,您可以选择停止执行。为什么没有一个按钮,这超出了我的理解......【参考方案5】:

见NoScript。

NoScript 是一个 Firefox 扩展程序,可让您阻止问题站点运行 JavaScript,同时仍允许其他站点正常工作 - 您无需单击按钮来停止它。

【讨论】:

我想尝试调试代码。禁用 javascript 对我不利:/

以上是关于在加载的页面上停止 Javascript 执行?的主要内容,如果未能解决你的问题,请参考以下文章

页面加载中止上的 Javascript 事件

通过 JavaScript 或 jQuery 停止在 hashchange 事件上加载图像

延迟网站页面的执行

jQuery如何实现页面加载完毕再去执行代码

如何使用javascript在asp.net上停止正在进行的回发(长时间运行)?

高性能JavaScript(加载和执行)