Salut à tous,
J'ai un petit soucis d'import de fichiers JavaScript. Dans ma page HTML, j'importe un .js qui s'occupe d'ajouter dans le head divers scripts. Cet ajout d'éléments "script" dans le "head" fonctionne parfaitement. Firebug m'indique clairement que Firefox a bien trouvé les fichiers importés. En revanche, il ne semble pas les interpréter.
En effet, chaque fichier importé contient la déclaration d'un objet. Et Firebug m'indique que les objets ne sont pas définis. Or je suis sûr que le code de ces fichiers est 100% correct : le problème ne vient pas d'eux. Donc, il semblerait que le bug provienne d'une absence d'interprétation des fichiers importés.
Ci-joint l'appel au fichier qui importe les autres .JS et son code-source. Je ne montrerai par le code des fichiers importés sauf demande de votre part (puisque je suis sûr que le problème ne vient pas de là).
Merci d'avance, bonne continuation.
PS : je rajouterais que lorsque j'ajoute les <script…> manuellement dans le fichier HTML, ça marche.
1 | <script type = "text/javascript" src = "Stats_Module.js"></script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | // This array contains the name of the JS-scripts to import. var scripts = ["data", "html block", "droppable", "sub data", "super type", "useful functions", "operations box", "top axis", "left axis", "super types tree"]; var head_scripts_imports = ""; // These variables contains the path where the .JS are var scripts_directory = "js-scripts_inc/"; var overlay_path = scripts_directory+"overlay/"; // For each item of the above array, we add it to the HEAD element in a SCRIPT element for (var i = 0; i < scripts.length; i++) { scripts[i] = transform_name(scripts[i]); add_To_Header(scripts[i]); } // In reality, for example : the file "sub data" doesn't exist : so we change "sub data" to "Sub_Data.js", which really exists. function transform_name(str) { return minus_To_Majus(replace_Spaces_By_Underscore(str))+".js"; } function replace_Spaces_By_Underscore(str) { return str.replace(/ /g, "_"); // Replaces all the occurences (take a look at the MDN guide : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) } // sub_data becomes Sub_Data for example function minus_To_Majus (str) { var res = ''; for (var z = 0; z < str.length; z++) { if (str[z] == '_' && z+1 < str.length) { res += str[z] + str[z+1].toUpperCase(); z++; } else if (z == 0) { res += str[z].toUpperCase(); } else { res += str[z]; } } return res; } // We add the SCRIPT element to the string that contains all the SCRIPT elements function add_To_Header (str) { head_scripts_imports += "<script type = 'text/javascript' src = '"+overlay_path+str+"'></script>"; } // Then, we add all these SCRIPT element to the HEAD one document.head.innerHTML = document.head.innerHTML + head_scripts_imports; |