この記事の例では、IE8 で動的に作成されたスクリプト タグの無効な onload に対する解決策について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
コードは次のとおりです:
loadJs("js/jquery-1.11.0.min.js", function(){
console.log("jQuery から");
LoadJs("test.js", function(){
console.log("test.js から");
});
});
実行結果:
js/jquery-1.11.0.min.js: ロードされました
jQuery から
関数
test.js: 完了
test.js
から
今回の実行順序は完全に予約通りでしたが、上記のコードは非常にぎこちなく、階層ごとにネストする必要があったため、この記述方法を発見しました:
var スクリプト = null;
スクリプト = document.createElement("スクリプト");
script.type = "text/javascript"
スクリプト.src = src;
If(typeof fun === "関数"){
script.onreadystatechange = function() {
var r = script.readyState;
console.log(src ": " r);
If (r === 'ロード済み' || r === '完了') {
script.onreadystatechange = null;
楽しい();
}
}
}
Document.write(script.outerHTML);
//document.getElementsByTagName("head")[0].appendChild(script);
};
loadJs("js/jquery-1.11.0.min.js", function(){
console.log("jQuery から");
});
loadJs("test.js", function(){
Console.log("test.js から");
});
実行結果の順序も異なります:
コードをコピー
コードは次のとおりです:
関数
js/jquery-1.11.0.min.js: ロードされました
jQuery から
test.js: ロードされました
test.js
から
読み込み順を変更した場合
コードをコピーします
コードは次のとおりです:
loadJs("test.js", function(){
Console.log("test.js から");
});
loadJs("js/jquery-1.11.0.min.js", function(){
console.log("jQuery から");
});
実行結果も、順次ロードと同様に異なります:
コードをコピー
コードは次のとおりです:
未定義
test.js: ロードされました
test.js より
js/jquery-1.11.0.min.js: ロードされました
jQuery
から
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。