我在外部 JS 文件中设置断点,但我无法让 Firebug 以一致的方式命中断点。它有时有效,但大多数时候无效。我可以让它工作的唯一方法是打开“中断所有错误”
我用过调试器;声明以及没有任何运气。
我在外部 JS 文件中设置断点,但我无法让 Firebug 以一致的方式命中断点。它有时有效,但大多数时候无效。我可以让它工作的唯一方法是打开“中断所有错误”
我用过调试器;声明以及没有任何运气。
如果行号不是绿色,则似乎 Firebug 无法调试该部分代码,因为它超出了范围。所以,如果你使用类似 $(function () { ... }); Firebug 将无法访问函数和变量。
那有意义吗?
此外,是否有可能某些其他功能或某些东西覆盖了您尝试调试的功能。如果您将相同的 JS 文件包含两次,这甚至是可能的。
希望有帮助。
我在尝试使用 Firebug 1.4 调试框架内的页面时遇到了这个问题。从“此框架”上下文菜单中选择“仅显示此框架”或“在新选项卡中打开框架”然后刷新页面似乎使脚本可调试。
Firebug 是否在脚本选项卡中显示带有绿色行号的代码?这表示可调试的代码行。
我经历过这种症状,有时没有一个行号是绿色的。我刷新页面,神奇的是,它们又变绿了。
我也经常遇到这个问题。我发现重新打开选项卡似乎有帮助(断点不会丢失)。但是“Break on all errors”看起来是最可靠的破解方式。
我很少需要一些关于 IE 的好东西,但在这种情况下它是正确的。在 VS 中调试 JavaScript 就可以了。它会毫无问题地命中断点(“调试器”),并阻止页面上的所有其他 JavaScript 代码执行。所以我经常用它作为备份。
Firebug 上的“控制台”选项卡是否显示任何其他 JavaScript 的错误?我发现如果调试断点之前的代码存在 JavaScript 错误,那么在修复前面的断点之前,它永远不会到达该代码行。
我也间歇性地遇到这个问题。我从断点下拉菜单中选择了“禁用所有断点”和“启用所有断点”,它开始工作。
我在这上面花了 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 中工作。这说得通。
终于我可以看到那些祝福的绿色数字了。
只是为提到的那些增加另一种可能性。
这自然发生在我面临着在生产中修复某些东西的压力时。
我无意中引入了一个语法错误:
function: myFunc(){}
// function body
}
就这样。在控制台日志的开头有一个错误,但我没有注意到它。我一直在尝试调试该文件,但 Firebug 不会介入。
因此,如果您遇到这种情况:检查控制台,可能存在语法错误导致文件加载短路。
对我来说,在我删除所有document.write()
电话后它就起作用了。
FF 36 和 FB 2.0.8 存在同样的问题:控制台中没有错误,代码工作正常,但 FB 显示 HTML 而不是 JS,在debugger
断点处停止但在某个随机 HTML 行处显示,不会在常规断点处停止。
我通过从页面中提取 JS 并将其移动到自己的 JS 文件中来解决它。
但是有一个问题:当脚本驻留在自己的 JS 文件中时,即使使用window.varName
语法,我也无法让“全局”变量在 FF 中工作(无论代码在哪里,在 IE 中都可以正常工作)。所以最终在 FB 中从一个单独的文件中调试,但恢复为内联进行生产。
我也有这个问题。也许与 KIT-Inwi 的回答有关……但我在每次页面加载时使用 PHP 生成随机行。
Firebug 似乎记住了整个 HTML 页面放置断点的行号,不一定是 Javascript 的行,这意味着您在此页面加载时放置断点的行号不一定是同一行下次加载它的代码,所以断点会出现“跳转”。
我不确定您如何使用每次更改的动态内容来解决它,但我通过删除随机行来修复它,因此带有断点的行在每次页面加载时都是相同的。