动态添加的脚本未显示在浏览器调试器的脚本部分。
解释:
我需要用并且已经用过
if( someCondition == true ){
$.getScript("myScirpt.js", function() {
alert('Load Complete');
myFunction();
});
}
这样 myScript.js 就可以在满足某些条件时动态加载... 并且只有在加载整个脚本后才能调用 myFunction...
但是浏览器没有在调试器的脚本部分显示动态加载的 myScript.js。
是否有另一种方法可以实现所有目标,从而能够在浏览器本身中调试动态加载的脚本?
最佳答案
您可以为动态加载的脚本命名,以便它显示在 Chrome/Firefox JavaScript 调试器中。为此,您可以在脚本末尾添加注释:
//# sourceURL=filename.js
此文件随后将在“源”选项卡中显示为 filename.js
。根据我的经验,您可以在名称中使用 ',但如果使用/',我会出现奇怪的行为。
因为如果没有指定域,filename.js
将出现在名为“(no domain)”的文件夹中,因此指定域可以方便地改善调试体验,例如查看可以使用的“自定义”文件夹:
//# sourceURL=browsertools://custom/filename.js
一个完整的例子如下:
window.helloWorld = function helloWorld()
{
console.log('Hello World!');
}
//# sourceURL=browsertools://custom/helloWorld.js
更多信息见: Breakpoints in Dynamic JavaScript deprecation of //@sourceurl
关于javascript - 如何在浏览器的调试器本身中调试动态加载的 JavaScript(使用 jQuery)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9092125/