Bonjour à tous.
Je suis en train de nettoyer une bibliothèque javascript personnelle, et j'aimerais permettre au développeur utilisateur de n'insérer qu'un seul fichier .js et non tous.
Par exemple, le codeur mettra dans son <head> :
... et cela intègrera automatiquement d'autres fichiers javascript comme mySubLibrary1.js, mySubLibrary2.js, ...
Or, le problème est le suivant : avant de pouvoir faire l'inclusion, je dois récupérer le chemin de la source (le "../myPath/"), et pour ce faire je dois donc récupérer le noeud <script> de ma bibliothèque.
Dans le fichier myLibrary.js, je recherche donc tous les éléments <script> comme suit :
Et c'est là que ça fait mal. Sous IE7 (!), il me trouve bien tous mes .js (même ceux insérés dynamiquement par Scriptaculous, que j'appelle juste avant ma propre bibliothèque), y compris le <script> de myLibrary.js.
Mais sous Firefox, il ne trouve que les tags précédents !
Pour concrétiser la chose, avec le code HTML suivant :
l'appel à getElementsByTagName("script").length me renvoie 8 sous IE7 (3 d'origine + 5 intégrés dynamiquement par Scriptaculous), et me retourne seulement 2 sous Firefox (seulement les noeuds de prototype et de scriptaculous, pas même le <script> de myLibrary).
Quelqu'un aurait-il une idée sur le pourquoi du comment ?
Merci par avance,
Modifié par xportebois (22 Jan 2007 - 14:05)
Je suis en train de nettoyer une bibliothèque javascript personnelle, et j'aimerais permettre au développeur utilisateur de n'insérer qu'un seul fichier .js et non tous.
Par exemple, le codeur mettra dans son <head> :
<script type="text/javascript" src="../myPath/myLibrary.js"></script>
... et cela intègrera automatiquement d'autres fichiers javascript comme mySubLibrary1.js, mySubLibrary2.js, ...
Or, le problème est le suivant : avant de pouvoir faire l'inclusion, je dois récupérer le chemin de la source (le "../myPath/"), et pour ce faire je dois donc récupérer le noeud <script> de ma bibliothèque.
Dans le fichier myLibrary.js, je recherche donc tous les éléments <script> comme suit :
document.getElementsByTagName("script"))
Et c'est là que ça fait mal. Sous IE7 (!), il me trouve bien tous mes .js (même ceux insérés dynamiquement par Scriptaculous, que j'appelle juste avant ma propre bibliothèque), y compris le <script> de myLibrary.js.
Mais sous Firefox, il ne trouve que les tags précédents !
Pour concrétiser la chose, avec le code HTML suivant :
<script src="../scriptaculous/lib/prototype.js" type="text/javascript"></script>
<script src="../scriptaculous/src/scriptaculous.js" type="text/javascript"></script>
<script src="../myPath/myLibrary.js" type="text/javascript"></script>
l'appel à getElementsByTagName("script").length me renvoie 8 sous IE7 (3 d'origine + 5 intégrés dynamiquement par Scriptaculous), et me retourne seulement 2 sous Firefox (seulement les noeuds de prototype et de scriptaculous, pas même le <script> de myLibrary).
Quelqu'un aurait-il une idée sur le pourquoi du comment ?
Merci par avance,
Modifié par xportebois (22 Jan 2007 - 14:05)