5

我正在尝试了解 getScript 的内部流程。我知道它内部使用了 $.get 方法。我在想 jQuery 将脚本标记引用放入 DOM 以便能够执行该 js 文件,但我在 DOM 中找不到通过 getScript 加载的脚本的脚本引用。

那么jQuery如何在DOM中没有脚本标签引用的情况下执行加载的脚本呢?

$.getScript('gallery.js')是完全一样的$('<script src="gallery.js">').appendTo('body')吗?

4

2 回答 2

7

这是源代码中有趣的部分

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 );
}
于 2011-07-10T16:05:14.967 回答
5

卢克使用 来源

(注意这些链接指向一个旧的提交)

于 2011-07-10T15:59:44.197 回答