|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 21 ![]() |
J'ai lu dans de nombreux post qu'il n'est pas de bon usage d'intégrer un script par document.write("<script ......).
Mais c'est la solution la plus simple que je trouve pour recycler un script (asciiMathml.js) sans avoir à replonger dedans. Donc ma question est : est-ce possible ou bloqué par javascript ? ici l'envoi vers une <frame name ="test"> Code :
(même en protégeant le <script> par \<script> Merci |
||
|
|
00
|
|
|
#2 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
Code :
parent.test.document.write("coucou <script>alert('coucou');</"+"script>"); Hormis eval, document.write est sans doute une des instructions javascript les plus délicates à manipuler recycler ? pourquoi ne pas simplement redefinir les fonctions ?
__________________
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
|
|
|
#3 | |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 21 ![]() |
Citation:
il y a 3000 lignes de code dans ce script, d'où un gros effort à produire pour se l'approprier. (c'est ce que j'ai fait finalement) Bien que cela soit inopportun, ma question portait sur la possibilité (théorique) de le faire. Typiquement, le document.write passe très bien si on remplace la balise <script> par <b> J'ai donc l'impression que c'est spécifiquement cette balise qui est en cause. |
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 805 ![]() |
Si tu exécutes dans une console JavaScript le code
Code :
document.write("<script>alert('coucou')</script>") Ensuite, au-delà d'être, comme le souligne Spaffy, l'une des pires fonctionnalités de JavaScript, ce write() est souvent source de problèmes car peu connaissent réellement son fonctionnement. Un document HTML possède deux états : open (en cours de création) ou close (entièrement chargé). Si le document est dans l'état open, write() va insérer ses paramètres à l'endroit où se trouve l'interpréteur. Si le document est dans l'état close, write() va le réouvrir (et donc supprimer le contenu actuel) et y inclure ses paramètres. Si tu as bien suivi, tu noteras que dans le second cas, il n'est à aucun moment question de refermer le document, ce qui dans ton cas pourrait être la source du problème. A titre d'exemple et si tu as fait le test d'insérer le code Code :
document.write("<script>alert('coucou')</script>") Si tu ajoutes une instruction Code :
document.write("<script>alert('coucou');document.close();</script>"); Or, je constate que tu dis que ton code fait 3000 lignes alors que ton exemple n'en fait qu'une, j'en conclue donc que ton but n'est pas de faire un alert() dans une page. J'en conclue aussi que ton "vrai" code s'appuie sur des actions a effectuer lorsque le document est chargé (window.onload ou autres dérivés). Donc ton write() ouvre le document, y insère un script qui attend le onload du body... mais si le document n'est pas fermé, il n'y aura jamais de onload ! Teste ces deux codes dans la console pour t'en persuader : Code :
document.write("<script>window.onload = function(){alert('coucou');}</script>") Code :
document.write("<script>window.onload = function(){alert('coucou');};document.close();</script>")
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#5 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 21 ![]() |
Effectivement, dans la console javascript, tout passe sans erreur.
Après bien des essais : La source de l'erreur est la non protection du / du </script> Avec Code :
Merci |
||
|
|
00
|
|
|
#6 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
j'ai l'impressiion que ce petit détail de mon post t'avais échappé:
__________________
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
|
Copyright © 2000-2012 - www.developpez.com