5

getScript の内部プロセスを理解しようとしています。$.get メソッドを内部的に使用していることは認識しています。jQuery は、その js ファイルを実行できるようにするためにスクリプト タグ参照を DOM に入れると考えていましたが、DOM で getScript によってロードされたスクリプトのスクリプト参照を見つけることができませんでした。

DOM でスクリプト タグを参照せずに、ロードされたスクリプトを jQuery が実行するにはどうすればよいのでしょうか。

$.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 に答える