Div.innerHTML="<script></script>"

Résolu
cs_hakim0 Messages postés 123 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 12 août 2008 - 12 avril 2007 à 12:42
ptitjib Messages postés 7 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 12 mai 2009 - 23 févr. 2009 à 17:16
j'ai un problem avec div.innerHTML, avec cette exemple ca marche:
div.innerHTML= " All is ok.! ";
 Mais avec l'exemple suivant ne ca marche pas
div.innerHTML ="<script language="javascript">alert('No')</script>";
Es que la div.innerHTML n'accept pas le javascript ou quoi???.
Merci pour une explecation de ce problem

[s]schow/s[?]

15 réponses

cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
13 avril 2007 à 12:24
Bonjour




une piste :
window.onload=function()
    {
    document.getElementById("div1").innerHTML "<script language='javascript'>alert('No')<\/script>";
    for (var i=0; i<document.getElementById("div1").getElementsByTagName("script").length; i++)
        {
        eval(document.getElementById("div1").getElementsByTagName("script")[i].innerHTML);
        }
    }

ça marche sur un navigateur normal. Pour les autres, il faut peut-être voir la solution de Fremmy, mais elle fonctionne pas chez moi

Cordialement
Roro webDev
3
cs_hakim0 Messages postés 123 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 12 août 2008 1
13 avril 2007 à 13:16
Merci ca marche mtn, mais avec une petite modification:
comme ca ne ca amarche pas:
document.getElementById("div1").innerHTML="<script language='javascript'>alert('No')<\/script>";
    for (var i=0; i<document.getElementById("div1").getElementsByTagName("script").length; i++)
        {
        eval(document.getElementById("div1").getElementsByTagName("script")[i].innerHTML);
        }
///////mais une petite point resourdre le problem:
document.getElementById("div1").innerHTML=".<script language='javascript'>alert('No')<\/script>";
    for (var i=0; i<document.getElementById("div1").getElementsByTagName("script").length; i++)
        {
        eval(document.getElementById("div1").getElementsByTagName("script")[i].innerHTML);
        }

///et oui avec le point ca marche bonne je ne sais pas aussi pk sans point ne marche pas et avec point ca marche
1
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 avril 2007 à 12:52
Bonjour,
    si, si... mais il ne l'exécute pas....    c'est ça ton problème ?
    et eviter les mots réservés par le Html/Javascript ( div ici ! )

    div1.innerHTML="euh<script type='text/javascript'>alert('No')<\/script>";




<hr />



Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 avril 2007 à 13:01
question supplémentaire : qule est le but ?
<hr />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
12 avril 2007 à 18:18
Lol, div n'est pas un mot-clé réservé...

En fait j'ai une source qui évite le problème, mais pour l'instant elle sur un autre site... Il serait temps que je la rajouter sur codes-sources aussi...

Je le fais de ce pas !

Pourquoi notre PC fait-il toujours ce qu'on lui demande ... et pas ce qu'on veut ???
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
13 avril 2007 à 06:55
salut Fremy,
oui,oui, div n'est pas un mot réservé...
mais c'est une bonne habitude à prendre, car dans certains autres cas...  
<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0
cs_hakim0 Messages postés 123 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 12 août 2008 1
13 avril 2007 à 11:12
le problem il rest, le javascript ne s'execute pas,...

[s]schow/s[?]
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
13 avril 2007 à 11:14
Bonjour




question : pourquoi mettre du javascript dans un div ?

Cordialement
Roro webDev
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
13 avril 2007 à 11:30
roro a dit >>pourquoi mettre du javascript dans un div ?
et c'était le sens de ma question : >>

quel est le but ?
    parce que franchement... l'intérêt... j'ai des doutes.




>>le problem il rest,
après avoir appliqué ce qu'a proposé Fremy ? étonnant ?
    tu as tenu compte des restrictions annoncées ?




<hr />



Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
0
cs_hakim0 Messages postés 123 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 12 août 2008 1
13 avril 2007 à 11:43
oui j'ai tapper le code que tu as fait, mais le problem il rest il n y'as pas d'execution du javascript, si je remplit le div avec du code html par exemeple:test test2
, ca marche mais pour le javascript ne s'execute pas....
51635 bultez :>>tu as tester ton code??
le but est :
le div contient de javascript par exemple
<script src ="http://monami.com/js.js"

></script>

apre l'execution de script je veut le r'executer, sans charger la page a nouveaux, comme je le dit le fichier javascript qui s'execut c'est pas a moi c'est le script de mon amis sur son site. une modification de sont script n'est pas possible.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
13 avril 2007 à 12:09
>>oui j'ai tapper le code que tu as fait,
    et pourquoi faire ??? il ne sera pas interprété !
    je te parlais de la solution de Fremy, qui fonctionne,
       mais quelle utilité ? quel but ? pourquoi faire ça ?

>>mais pour le javascript ne s'execute pas.

    ben oui... c'est ce qu'on dit !

>>apre l'execution de script je veut le r'executer, sans charger la page
a nouveaux,
>>comme je le dit le fichier javascript qui s'execut c'est
pas a moi c'est le script de
>>mon amis sur son site. une modification de sont script n'est pas possible.
    euh ? on peut être plus clair ?
    un script se déroule cote client, pas sur le site.
    doux mélange de je ne sais quoi... recharger la page ? c'est si on appelle un
       script langage sur le serveur ( php, asp, ruby ... ) pas du javascript.

   
<hr />
Cordialement                Bul     [mon Site]     [M'écrire]
<hr />
0
cs_hakim0 Messages postés 123 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 12 août 2008 1
13 avril 2007 à 12:19
oui je te compris, je suis un programmeur initier, le problem c'est le langaue francais
le problem est clair, le but non, je veut seuelement resourdre le probelem,
le javascript ne s'execute pas sur le div apres>> div1.innerHTML="<script type='text/javascript'>alert('No')<\/script>";

pk??. c'est ca la question, Merci
0
cs_hakim0 Messages postés 123 Date d'inscription mercredi 27 août 2003 Statut Membre Dernière intervention 12 août 2008 1
13 avril 2007 à 13:18
ehh le problem se pose seulement en IE mais firefox ca marche sans (Magic) point,
0
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
13 avril 2007 à 19:01
C'est ce que je faisais avant mais apparrement sous IE7 en mode "standard" (donc pas Quirks), ca passe plus....

Au fait j'ai mis à jour... Il y avait une faute dans mon correctif... J'avais testé que sous FF et ca marchait... Alors j'ai remi l'ancien

Pourquoi notre PC fait-il toujours ce qu'on lui demande ... et pas ce qu'on veut ???
0
ptitjib Messages postés 7 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 12 mai 2009
23 févr. 2009 à 17:16
Bonjour,
Voilà ma solution :

une fonction qui relance les scripts :

function reload_allscript() {
var scripts = document.getElementsByTagName('script');
for (var i = 0; i < scripts.length; i++) {
eval(scripts[i].innerHTML);
}
}


Puis dans votre appel Ajax ajouter comme suit au niveau de la fonction xhr.onreadystatechange :

xhr.onreadystatechange = function() {
if ( xhr.readyState 4 && xhr.status 200 )
{
document.getElementById(elt_id).innerHTML=xhr.responseText;
reload_allscript();
} else {
document.getElementById(elt_id).innerHTML='Chargement ...';
}
0
Rejoignez-nous