如何在浏览器的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行”的源文件的新副本。