|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 12 ![]() |
Bonsoir à tous !
Je ne comprends pas pourquoi le script suivant fonctionne bien sous Firefox, Chrome et Opera, mais pas sous Internet Explorer 7. Peut être que quelqu'un saura m'éclairer ? Le but de ce script est d'évaluer à la volée une chaine contenant des scripts Javascript ainsi que du HTML. Il peut y avoir plusieurs scripts dans la chaine, mélangés avec du HTML. Pour l'exemple, la chaine contient uniquement un script affichant "Test" dans une box alert. Test.html: Code :
Ne cherchez pas la logique de ce code, c'est juste un exemple :p j'ai pris que la partie utile de mon code pour décrire le bug que je rencontre. Le problème est visiblement lié à element.getElementsByTagName("script"), qui ne trouve aucun script avec IE, puisque scripts.length vaut 0. Quelqu'un sait-il pourquoi ça ne fonctionne pas sous IE ? Je vous remercie et... bonne nuit ! |
||
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Étudiant Inscription : octobre 2010 Messages : 92 ![]() |
Pourquoi tu échappes le slash de ta balise script ?
EDIT : Exact je suis bête :p |
|
|
00
|
|
|
#3 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 021 ![]() |
ben sinon cette balise sera comprise comme la balise de fermeture du script courant, et pas comme du string html ...
Il y a un post ou une contribution sur l'ajout d'une balise script dynamiquement en passant par le DOM une petite recherche et tu trouveras ton bonheur ...
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#4 | |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 12 ![]() |
Citation:
Mais l'objectif est ici de pouvoir évaluer du code provenant d'un serveur via AJAX par exemple, ou saisi par un utilisateur. Exemple, lors d'un appel AJAX, le serveur m'envoie du HTML contenant également quelques scripts Javascripts, le but est d'exécuter tous ces scripts. getElementsByTagName fonctionne pour ça sur tous les browsers, mais pas sur IE, il y a peut être quelque chose de différent à faire pour ce browser... |
|
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
Citation:
J'ai cherché dans la ref DOM du w3c mais pour le moment je n'ai que ça Citation:
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 12 ![]() |
J'ai trouvé un exemple qui fonctionne, il ne me reste plus qu'à comprendre pourquoi
Il charge en AJAX un fichier HTML contenant également du Javascript, et je vois bien l'effet sous IE 7. Voir ICI Le code HTML (contenant du Javascript) téléchargé à la volée en AJAX |
|
|
00
|
|
|
#7 | |||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 867 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 867 ![]() |
après avoir testé ton code (car ça me semblait étrange que IE refuse)
effectivement sans doctype ça fonctionne partout sauf sous IE qui refuse les balises html (donc <script>) dans innerHTML et avec doctype ça fonctionne, oh magie ! Code :
|
||
|
|
10
|
|
|
#9 | |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 12 ![]() |
Citation:
Sous quel IE l'as-tu testé? |
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 867 ![]() |
|
|
|
00
|
|
|
#11 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 021 ![]() |
Je ne vois pas en qui la méthode dom ne te permettrait pas de coller le texte du script dans la balise créée ?
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#12 | |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 12 ![]() |
Citation:
Le texte que je reçoit provient d'un serveur, et est issu d'un appel AJAX, il peut contenir n'importe quel code HTML entrecoupé de scripts Javascripts. Je dois inclure ce texte dans ma page et exécuter tous les scripts qu'il contient. Pour récupérer le texte des scripts, j'utilise getElementsByTagName (qui ne fonctionnait pas dans mon exemple). J'ai résolu mon problème hier soir, j'updaterai ce topic rapidement pour dire ce que j'ai fait. |
|
|
|
00
|
|
|
#13 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 021 ![]() |
Je n'y vois toujours aucune contrindication ...
Il te suffit de parser le code html js reçu pour en recupérer le "texte" du script et l'insérer à la volé dans une balise script créée par le DOM ...
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 12 ![]() |
OK.
Mais j'ai réussi à corriger mon erreur avec les liens vers l'exemple que j'ai postés plus haut. Merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com