使Firebug内部动态加载javascript

时间:2009-05-13 15:55:21

标签: javascript jquery firebug

我正在寻找一种方法来调试动态加载的jQuery document.ready函数。

显然我不能只调出脚本面板并用鼠标添加断点,因为那里没有该函数。

我也试过添加“调试器”;功能(没有引号),但没有做任何事情。我已经确保在我尝试这个时实际执行了该功能。

感谢您的帮助,

阿德里安

编辑:我刚刚注意到Firebug实际上在调试时中断了。但是,当它在动态加载的脚本上执行此操作时,它不像往常那样显示该脚本的源代码。另外,调用堆栈在我自己的代码下面结束。我可以通过调用堆栈调出document.ready的实现,但这并没有真正帮助。这是一个Firebug错误还是我错过了什么?

5 个答案:

答案 0 :(得分:17)

我刚刚参与了此similar question。解决方案包括两次添加调试器一词;一次位于外部文件的顶部,另一次位于需要调试的函数顶部。

我注意到如果调试器单词只使用一次,则无效。例如:

//myExternal.js
debugger;
function myExternalFunction(){
 debugger;
 /* do something here */
}

答案 1 :(得分:0)

您可以尝试在调用事件的地方放置一个断点,然后选择“Step Into”(F11),而不是单击“Play”。我面前没有测试用例,但我认为这可能有用。

答案 2 :(得分:0)

我不知道你是否想过这个问题,但万一其他人需要它......

通过将我想调试的代码移动到从主页链接的外部文件,我解决了这个问题。

就我而言,我使用jQuery AJAX将default.aspx加载到内容div中。反过来,Services.aspx正在使用AJAX从提供数据的Web服务加载jQuery UI选项卡元素。 Web服务代码位于名为data.js的文件中,该文件是从default.aspx链接的。我需要调试services.aspx标头中的代码(用数据加载标签),但是在任何可用的检查器中都看不到它。我只是将我需要的代码移动到data.js中的一个新函数,并从services.aspx中的头部调用它。

我希望对需要它的人有意义!

答案 3 :(得分:0)

Firefox 5.0 / Firebug 1.7.3 中遇到同样的行为(Firebug忽略动态加载代码中的debugger;语句)。

分离Firebug窗口(“在新窗口中打开Firebug”)。

答案 4 :(得分:-2)

还有一个'调试器'关键字,IE JScript调试器和Safari的Web Inspector支持,所以如果firebug不支持我会感到惊讶。

基本上:

// mydynamicallyloadedfile.js
... // do stuff
debugger; // triggers debugger
... // more stuff

我希望firebug能够以debugger关键字

来突破