2010-04-13 63 views
18

Firebug是否可以通过按下按钮或键盘快捷键来停止javascript,而不是通过设置断点来停止它?有没有可能使用Firebug停止JavaScript而不使用断点?

为什么我会喜欢这样做? 我们有一个非常动态的网站,有很多动画。如果我可以在动画正在执行某些我想检查的内容时停止脚本,那将非常有帮助。 这比用断点摆弄要快得多。

回答

4

Firebug中有一个暂停按钮。点击这是你正在寻找。

+3

暂停按钮被标记为“中断所有错误?”这不是那种工作方式。 – 2010-04-13 21:14:50

+0

@matt,至少它可以快速分析。解决方案对我来说已经足够了。 +1 – Mateng 2013-02-15 15:23:58

1

根据您使用的动画库,可能会出现“停止所有动画”的方法 - 例如,jQuery's .stop()。你如何处理动画?

2

如果你知道它在做什么你想要检查的地方,那么断点有什么问题?此外,您可以在代码中使用调试器关键字,也可以在代码中注入console.log/debug/warn/info语句。 (您可以为那些没有环境的环境留出控制台对象)。

0

解决此问题的最佳方法是转到HTML下拉菜单,它位于萤火虫的HTML标签旁边。取消选择“突出显示更改”和“滚动更改以查看”,这应该允许您检查正在执行的html和css代码。我希望你们想这样做。

7

这是我做到了,从Web控制台(未暂存器),运行:

window.addEventListener("keydown", function() {debugger;}) 

然后返回到调试器选项卡。当您关注文档并按下某个键时,浏览器将暂停JS。

+0

这很好,赶上快速ajax事件... – Nikit 2015-11-16 08:51:03

+0

呃,很好: -/...顺便说一句,它只是JavaScript,所以它可以在很多方面使用(注入),不只是从控制台,对吧?谢谢。 – erm3nda 2016-11-24 06:29:06

+0

当然,但您必须与文档处于相同的JavaScript上下文中,这就是为什么暂存器不起作用。尽管你可以将它包含在文档本身的javascript中。 – Eric 2016-11-24 13:35:47

-1

最简单的方法是安装firefox扩展“PrefBar”。在那里你可以添加一个复选框“JavaScript”。如果你停用它,JavaScript停止。

+0

那么......你怎么能够安装Firefox扩展,但无法阅读和理解问题......? :-)。停止意味着运行然后停止,而不是“停用”。提问者的目标是能够按需暂停,而不设置断点:-) – erm3nda 2016-11-24 06:27:13

1

如果您使用web开发者插件,您可以禁用所有在脚本中运行的java脚本,然后根据需要使用firebug。

+0

Wow.'http://chrispederick.com/work/web-developer/'现在我可以用我的JS代码进行故障诊断沉重的CSS更新,看看究竟发生了什么。本页面上的大多数其他解决方案都无法让我到达那里。当脚本中的JS“暂停”时,您无法检查CSS。 @Marty thx。 – zipzit 2014-06-19 18:09:33

+0

这不会停止当前页面的脚本执行。它只会禁用下一页上的JavaScript重新加载,这无助于检查特定点上的动画。 – 2016-05-13 06:53:38

0

如果网站不断从您的服务器重新加载内容,则可以切换到“网络”窗格。这里的上下文菜单有一个“Break on XHR”条目,当它被选中时,它会在你尝试获取新内容时停止你的脚本。

3

Firebug具有不同的方法来停止脚本执行,而无需在特定行设置断点。这些选项被称为Break On features

在你的情况下,我看到两个相关的选项:

  1. 打破的JavaScript上的下一个执行的行
    脚本面板上有一个打破接下来按钮(*Break On Next* button),其允许您在下一个执行的JavaScript语句中停止脚本执行。此功能也可以通过键盘快捷键启用Ctrl + Alt + B

    所以,只要在动画处于想要检查的位置时点击键盘快捷键即可。

  2. 歇在HTML突变
    HTML面板上有一个打破变异按钮(*Break On Mutate* button),它允许你停止在接下来的HTML突变脚本执行。
    还有更多细粒度的选项可停止特定元素的变化,这些元素可在元素的上下文菜单中使用。这些选项是:

    • 打破属性更改:停止在元素的属性添加,更改或删除脚本的执行。
    • 打破儿童添加或删除:添加或删除子节点时停止脚本执行。
    • 元件拆卸中断:当元件本身被移除时停止脚本执行。

    在你的情况打破属性更改可能的情况下,动画改变元素的style属性中的CSS正确的选择。

+0

谢谢你的选择,我会尽我所能找到我想要的方式。我必须调试几个JavaScript脚本,并想知道我会遭受多少:-)谢谢。 – erm3nda 2016-11-24 06:31:04

+0

请注意,这些选项仅适用于Firebug,[Firebug的开发不幸停止支持Firefox DevTools](https://blog.getfirebug.com/2016/06/07/unifying-firebug-firefox-devtools/) )(Firebug的[*脚本*面板在Firefox 50中已损坏](http://stackoverflow.com/a/40748127/432681))。尽管DevTools仍然缺少第二个选项(突破HTML突变)。此功能在[bug 1004678](https://bugzilla.mozilla.org/show_bug.cgi?id=1004678)中请求。 – 2016-11-24 16:41:38

相关问题