Après de nombreuses recherches, j'ai résolu ce problème grâce à des conseils de ofir_aghai réponse sur l'événement de chargement du script.
En gros, nous devons utiliser $
pour le code de jQuery, mais nous ne pouvons pas l'utiliser tant que jQuery n'est pas chargé. J'ai utilisé document.createElement()
pour ajouter un script pour jQuery, mais le problème est qu'il prend du temps à charger alors que l'instruction suivante en JavaScript en utilisant $
échoue. J'ai donc utilisé la solution ci-dessous.
myscript.js a un code qui utilise jQuery main.js est utilisé pour charger les deux jquery.min.js y myscript.js en s'assurant que jQuery est chargé.
code 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);
}
Comme ça, ça a marché. Utilisation de loadJQueryFile()
de myscript.js n'a pas fonctionné. Il passe immédiatement à l'instruction suivante qui utilise $
.