"" />

Div.innerHTML="<script></script>" [Résolu]

Signaler
Messages postés
123
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
12 août 2008
-
Messages postés
7
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
12 mai 2009
-
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

Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

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
Messages postés
123
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
12 août 2008
1
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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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 />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
question supplémentaire : qule est le but ?
<hr />


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



<hr />
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008

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 ???
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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 />
Messages postés
123
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
12 août 2008
1
le problem il rest, le javascript ne s'execute pas,...

[s]schow/s[?]
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour




question : pourquoi mettre du javascript dans un div ?

Cordialement
Roro webDev
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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 />
Messages postés
123
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
12 août 2008
1
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.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
>>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 />
Messages postés
123
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
12 août 2008
1
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
Messages postés
123
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
12 août 2008
1
ehh le problem se pose seulement en IE mais firefox ca marche sans (Magic) point,
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008

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 ???
Messages postés
7
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
12 mai 2009

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 ...';
}