我在外部JS文件中设置断点,但我无法让Firebug以一致的方式点击断点。它有时有效,但大多数情况下它没有。我可以让它工作的唯一方法是打开“Break on all errors”
我使用过调试器;声明也没有任何运气。
答案 0 :(得分:15)
如果行号不是绿色,似乎Firebug无法调试该部分代码,因为它超出了范围。所以,如果你使用像$(function(){...})这样的东西; Firebug将无法访问函数和变量。
这有意义吗?
此外,是否有可能某些其他功能或某些内容覆盖了您尝试调试的功能。如果你两次包含相同的JS文件,它甚至可能。
希望有所帮助。
答案 1 :(得分:6)
Firebug是否在“脚本”选项卡中显示带绿线编号的代码?这表示可调试的代码行。
我遇到过这种症状,其中没有一个行号有时是绿色的。我刷新页面,神奇地再次变绿了。
答案 2 :(得分:6)
我也经常遇到这个问题。我发现重新打开选项卡似乎有所帮助(断点不会丢失)。但“打破所有错误”似乎是最可靠的破解方式。
我很少对IE有所了解,但在这种情况下,它是正确的。在VS中调试JavaScript只是起作用。它可以毫无问题地命中断点(“调试器”),并阻止页面上的所有其他JavaScript代码执行。所以我经常使用它作为备份。
答案 3 :(得分:6)
尝试使用Firebug 1.4调试帧内的页面时遇到此问题。从“此框架”上下文菜单中选择“仅显示此框架”或“在新选项卡中打开框架”,然后刷新页面似乎使脚本可调试。
答案 4 :(得分:3)
Firebug上的“控制台”标签是否显示任何其他JavaScript的错误?我发现,如果调试断点之前的代码存在JavaScript错误,那么它将永远不会到达该行代码,直到前面的断开代码被修复。
答案 5 :(得分:3)
我间歇性地遇到这个问题。我选择了#34;禁用所有断点"并且"启用所有断点"从断点下拉,它开始工作。
答案 6 :(得分:2)
我花了1个小时。
我有<script>
这样的标签:
<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript">
你能发现问题吗?
我花了很长时间才发现它。关闭/
代码时缺少<script>
。
<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript" />
这肯定是由于一些复制/粘贴然后尝试更改代码......在这种情况下我只是玩傻瓜! :)
添加/
后,我能够在Firebug中使用断点。这很有道理。
最后,我可以看到那些有福的绿色数字。
答案 7 :(得分:0)
只是为那些提到的人添加另一种可能性。
当我在压力下自然地修复某些东西时,就发生了这种情况。
我无意中引入了语法错误:
function: myFunc(){}
// function body
}
就像那样。在控制台日志的开头有一个错误,但我没有注意到它。我一直在尝试调试该文件,但Firebug不会介入它。
所以,如果发生这种情况:检查控制台,可能是语法错误导致文件加载短路。
答案 8 :(得分:0)
对我而言,我删除了每次document.write()
次来电后都能正常工作。
答案 9 :(得分:0)
与FF 36和FB 2.0.8相同的问题:控制台中没有错误,代码工作正常,但FB显示的是HTML而不是JS,在debugger
断点处停止但在某个随机HTML行显示,不会停留在常规断点处。
我通过从页面中提取JS并将其移入其中来解决它 拥有JS文件。
但是有一个问题:当脚本存在于自己的JS文件中时,我无法让“全局”变量在FF中工作(无论代码在哪里,都可以在IE中正常工作),甚至使用{{1 }} 句法。因此最终在FB中从单独的文件进行调试,但是还原为内联生产。
答案 10 :(得分:0)
我也有这个问题。也许与KIT-Inwi的答案有关......但是我在每次加载页面时都使用PHP生成随机行。
Firebug似乎记得将断点放在整个HTML页面的行号,而不一定是Javascript的行,这意味着您将断点放在此页面上的行号下次加载时,load won必须是同一行代码,因此断点将显示为&#34; jump&#34;。
我不确定您是如何使用每次更改的动态内容来解决它的,但我通过删除随机行来修复它,因此每个页面加载时断点的行都相同。 / p>