多くの調査の後、スクリプトの読み込みイベントに関するofir_aghai回答のヒントを使用して、この問題を解決します。
基本的には$
jQueryコードに使用する必要がありますが、jQueryがロードされるまで使用できません。以前document.createElement()
はjQueryのスクリプトを追加していましたが、問題は、JavaScriptを使用$
した次のステートメントが失敗するまでにロードに時間がかかることです。そこで、以下のソリューションを使用しました。
myscript.jsには、jQueryを使用するコードがあります
。main.jsを使用して、jquery.min.jsファイルとmyscript.jsファイルの両方をロードし、jQueryがロードされていることを確認します。
main.jsコード
window.load = loadJQueryFile();
var heads = document.getElementsByTagName('head');
function loadJQueryFile(){
var jqueryScript=document.createElement('script');
jqueryScript.setAttribute("type","text/javascript");
jqueryScript.setAttribute("src", "/js/jquery.min.js");
jqueryScript.onreadystatechange = handler;
jqueryScript.onload = handler;
heads[0].appendChild(jqueryScript);
}
function handler(){
var myScriptFile=document.createElement('script');
myScriptFile.setAttribute("type","text/javascript");
myScriptFile.setAttribute("src", "myscript.js");
heads[0].appendChild(myScriptFile);
}
このように機能しました。myscript.jsloadJQueryFile()
からの使用は機能しませんでした。を使用する次のステートメントにすぐに移動します。$