繁体   English   中英

使Firebug内部动态加载javascript

[英]Making Firebug break inside dynamically loaded javascript

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

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

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

谢谢你的帮助,

阿德里安

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

我只是在研究这个类似的问题 解决方案包括两次添加调试器一词; 一次位于外部文件的顶部,另一次位于需要调试的函数顶部。

我注意到如果调试器单词只使用一次,它就不起作用了。 例:

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

我不知道你有没有想到这个,但万一其他人需要它...

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

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

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

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

通过分离Firebug窗口(“在新窗口中打开Firebug”)解决了这个问题。

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

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

基本上:

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

我希望firebug能够打破debugger关键字

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM