是否可以在不使用断点的情况下使用Firebug停止javascript?

时间:2010-04-13 16:22:49

标签: javascript debugging firebug

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

我为什么要这样做? 我们有一个非常动态的网站,有很多动画。如果我能在动画正在做我想要检查的事情时停止脚本,那将是一个很大的帮助。 这比摆弄断点要快得多。

10 个答案:

答案 0 :(得分:7)

我是这样做的,从Web控制台(不是暂存器),运行:

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

然后返回调试器选项卡。当您聚焦文档并按一个键时,浏览器将暂停JS。

答案 1 :(得分:4)

Firebug中有一个暂停按钮。点击它就是你要找的东西。

答案 2 :(得分:3)

Firebug有不同的方法可以在不在特定行设置断点的情况下停止脚本执行。这些选项称为Break On features

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

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

    因此,只要想要检查动画,就点击键盘快捷键。

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

    • 中断属性更改:在添加,更改或删除元素的属性时停止脚本执行。
    • 中断子项添加或删除:在添加或删除子节点时停止脚本执行。
    • 分解元素删除:删除元素本身时停止执行脚本。

    如果动画在元素的style属性中更改了CSS, Break On Attribute Change 可能是正确的选择。

答案 3 :(得分:2)

如果你知道它想要检查的是什么,那么断点有什么问题?此外,您可以在代码中使用 debugger 关键字,或者您可以在代码中注入console.log / debug / warn / info语句。 (您可以为那些没有控制台对象的环境存根控制台对象。)

答案 4 :(得分:1)

根据您的描述,我猜测您的代码中的javascript控制台日志记录可能会对您有所帮助。查看http://getfirebug.com/wiki/index.php/Console_API

答案 5 :(得分:1)

取决于您正在使用的动画库,可能会有一个“停止所有动画”方法 - 例如jQuery's .stop()。你是如何处理动画的?

答案 6 :(得分:1)

如果您使用Web开发人员插件,则可以禁用所有java脚本在页面上运行,然后根据需要使用firebug。

答案 7 :(得分:0)

解决此问题的最佳方法是转到HTML下拉列表,其中包含firebug中的HTML选项卡。取消选择"突出显示更改"和"滚动更改以查看"这应该允许您检查正在执行的html和css代码。我希望你们能做到这一点。

答案 8 :(得分:0)

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

答案 9 :(得分:-1)

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