
Envoy� par
Herode
J'ajouterai que document.write �crit dans le flux
� l'endroit o� il est invoqu�. Dans le cas pr�sent, �a revient � ajouter une <form> � l'int�rieur du gestionnaire onload de la balise <body> :
<body onLoad="javascript:<FORM> <INPUT TYPE='button' VALUE='Boton' OnClick='loadpage()'> </FORM>">

Dans le cas pr�sant, je ne crois pas que cela ce produise comme ca 
Il ne s'agit pas d'une �criture dans le flux mais d'une �criture hors-flux (au momment de la gestion de l'�venement onload). Dans ce cas, la fonction r�initialise totalement le document... dans le cas pr�sent, c'est comme si tu avais mis dans ton fichier HTML ceci :
<FORM> <INPUT TYPE='button' VALUE='Boton' OnClick='loadpage()'> </FORM>
Autrement dit, ta fonction loadpage n'est pas d�clar�e, il n'y a pas d'element HTML, pas d'element HEAD, pas d'�l�ment BODY, ... pour t'en convaincre essaie de mettre ceci en onload de la balise body :
document.write("Ce message s'affiche-t-il ?");alert(document.body.innerHTML);
C'est pour cette raison que son utilisation est fortement d�conseill�e, elle n'a pas un effet constant, tout d�pand du momment ou elle est execut�e.... si entre <body> et </body> tu fais
setTimeout("document.write('Hello Asynchrone')",0)
, la m�thode est ex�cut�e hors flux, et d�truit donc le document en cours.... seulement tout cela est � la gestion du navigateur, qui ne manque jamais d'ing�niosit� quand il s'agit de faire d�ff�rement des autres navigateurs 
Je d�conseille aussi la m�thode document.body.innerHTML += car elle d�truit les liens des objets... exemple :
1 2 3 4 5 6 7
| var Button1 = document.createElement("button")
Button1.innerHTML="Cliquer ici"
document.body.appendChild(Button1)
document.body.innerHTML+="<br /> Ce texte est après le boutton... Tout semble ok point de vue visuel"
Button1.onclick=function () {
alert("Ce message n'aparaitra pas car Button1 n'a plus une référence au Button 'visuel'")
} |
Partager