我试图了解getScript的内部过程。我知道它在内部使用$ .get方法。我认为jQuery将一个脚本标记引用放入DOM中,以便能够执行该js文件,但是我找不到DOM中getScript的加载脚本的脚本引用。
那么jQuery如何在DOM中没有脚本标记引用的情况下执行加载的脚本?
$.getScript('gallery.js')
与$('<script src="gallery.js">').appendTo('body')
完全相同?
答案 0 :(得分:6)
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 );
}
答案 1 :(得分:5)