我试图了解 getScript 的内部流程。我知道它内部使用 $.get 方法。我认为 jQuery 将脚本标记引用放入 DOM 中以便能够执行该 js 文件,但我无法在 DOM 中找到通过 getScript 加载的脚本的脚本引用。
那么 jQuery 如何在 DOM 中没有脚本标记引用的情况下执行加载的脚本呢?
$.getScript('gallery.js')
与 $('<script src="gallery.js">').appendTo('body')
完全相同?
最佳答案
This is the interesting part in the source code .
jQuery 似乎只是接收文本并在全局范围内对其进行评估:
converters: {
"text script": function( text ) {
jQuery.globalEval( text );
return text;
}
}
如果您从不同的域加载脚本,jQuery 将添加一个新的 script
标记:
head.insertBefore( script, head.firstChild );
但在代码加载后将其删除:
// Remove the script
if ( head && script.parentNode ) {
head.removeChild( script );
}
关于jQuery getScript方法的内部流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6642081/