如何在浏览器的debugging器本身中debuggingdynamic加载的JavaScript(使用jQuery)?

浏览器的debugging器脚本部分中没有显示dynamic添加的脚本。

说明:

我需要使用和使用

if( someCondition == true ){ $.getScript("myScirpt.js", function() { alert('Load Complete'); myFunction(); }); } 

所以myScript.js可以dynamic地加载满足一些条件…和myFunction只能在获取整个脚本加载后调用…

但浏览器不会在debugging器的脚本部分显示dynamic加载的myScript.js。

有没有另外的方法,以便所有的目标可以实现,这将使人们能够在浏览器本身debuggingdynamic加载的脚本?

您可以为dynamic加载的脚本命名,以便在Chrome / Firefox JavaScriptdebugging器中显示。 要做到这一点,您可以在脚本的末尾添加注释:

 //# sourceURL=filename.js 

这个文件将在“Sources”标签中显示为filename.js 。 根据我的经验,你可以使用名字,但是如果使用/,我会得到奇怪的行为。

有关更多信息,请参阅: // @ sourceurl的 dynamicJavaScript 弃用中的 断点

您可以在脚本文件或脚本标记的末尾使用//# sourceURL=//# sourceMappingURL=

注意: //@ sourceURL//@ sourceMappingURL已被弃用。

我尝试使用OP作为解决方法build议的“//#sourceURL = filename.js”,但是它仍然没有显示在“源”面板中,除非它已经存在于我的选项卡中,它产生了一个例外。

编码“debugging器” 线迫使它在那个地方打破。 然后,一旦它位于“来源”面板的我的选项卡中,我可以像正常一样设置断点,并删除“debugging器”。 线。

请注意,以这种方式出现在sources选项卡中的源文件将出现在(无域)组中,如果您想debugging它,则需要添加一个debugger; 在你的代码行中,执行该行(通常在执行源文件的开始处),然后在你想要的地方添加断点。

如果你正在debugging生产阶段,你可能没有debugger; 在你的代码中,你可以通过使用CharlesProxy的本地映射来实现这个function,以便“插入debbuger行”的源文件的新副本。