[javascript] window.onload et document.write

Fermé
-
 olandcie -
Bonjour,
J'aimerai savoir pourquoi quand on fait un window.onload et ensuite un document.write la page en court est effacer ?
Ex:

window.onload=Init;
function Init()
{
document.write('coucou');
}

10 réponses

Messages postés
4
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
5 août 2008
11
Je suis tombé sur cette page en faisant une recherche... donc je précise ce que je ferai pour un cas similaire :

En haut de la page, un <div id='monid'></div>

Et dans le javascript, remplacer document.write('coucou');
par
monid.innerhtml = 'coucou';

(je ne sais pas si ce sera utile à quelqu'un, mais comme cette page est dans les premières en recherchant comment afficher quelquechose au chargement de la page... peut être que ça aidera d'autres personnes)
Normalement tu devrait avoir coucou.... blablabla je penses.
A priori il n'est pas possible de faire passer le onload après le body, même si ta balise script est après ^^.
J'avais essayé de faire un truc similaire je penses, je voulais changer la couleur d'un tableau enfonction de réponses à des requetes SQL. Il fallait donc que toutes les requêtes soient effectuées. J'avais pas mal cherché et d'après ce que j'ai pu voir ça avait pas l'air possible... au pire tu utiliser le on.Mousemove (ou quelque chose comme ça qui réagit au mouvement de la souris)...mais c'est moins bien.
Salut tout le monde !
Bon, je suis pas une pro, mais voilà mon avis.

Pb1 : Si tu mets pas ton script qui écrit dans le body, il ne risque pas de s'afficher.
Pb2: Si tu mets ton script dans le body, il ne va as arrêter de tourner, et là, je comprends pas pourquoi ça ne fonctionne pas si on met un break à la fin des instructions scripts, c'est-à-dire si on a :

Contenu du test.php :

<html>

<head>
</head>

<body>
bla bla bla bla bla bla bla bla........
<script type="text/javascript" src="test.js">
</script>
</body>

</html>
_________________

Contenu du test.js :

window.onload=Init;
function Init()
{
document.write('coucou');
break;
}
La réponse a été donnée par slolo2000, un document.write remplace tout le contenu de la page par ce que le document.write prend en argument, par conséquent ici la source html de ton ouput sera : <html>coucou</html> et basta !-)

La solution c'est de mettre un div et de remplacer le contenu du div avec un

getElementById('nom_du_div).innerHTML = "coucou";

Peace
> Sid
petit up ,

je ne compend pas bien le probleme il suffit d'utilisé des frames non ?

tu fait une page test.html ou tu met par exemple:

<html>
<head></head>


<frameset rows="60%,40%" FRAMEBORDER=NO FRAMESPACING=0 BORDER=0>
<frame src="tapagehtml.html" FRAMEBORDER=NO FRAMESPACING=0 BORDER=0>

<frameset cols="30%,70%" FRAMEBORDER=NO FRAMESPACING=0 BORDER=0>
<frame src="" NAME="script" FRAMEBORDER=NO FRAMESPACING=0 BORDER=0>
<frame src="" NAME="truc" FRAMEBORDER=NO FRAMESPACING=0 BORDER=0>

</frameset>
</frameset>
</html>

ensuite dans tapagehtml ou tu as ton script js tu met un truc du genre :
top.script.document.write();
top.truc.document.write();

apres tu regle les frames comme tu veut, la c'est juste un exemple
> Sid
Bonjour,

Pourrais-tu compléter intégralement ce petit script ?

D'avance merci

car même en nommant le DIV ==> erreur

function affichepubval()
{
document.getElementById("MOI").value = txturl[numimage].valueOf();
OK //alert(document.getElementById("MOI").value);

??? getElementById('MOI').innerHTML = "OK";

// que 1 fois !!! puis nouvelle page
//document.write(txturl[numimage].valueOf());

setTimeout("affichepubval()", 1000);
}

<div id="MOI">

<SCRIPT language="JavaScript">
// data ligne 2

//document.write(txturl[numimage].valueOf());

affichepubval();

</SCRIPT>
</div>

salut

Qand tu charges ta page, Init est appelés, là tu écris "coucou".

Est-ce que tu fais un autre write après en dehors de cette fonction qui efface le coucou ?
Enfaite c'est simple (si on veux)
J'ai une page html :
<html>
<head></head>
<body>
bla bla bla bla bla bla bla bla........
</body>
<script type="text/javascript" src="monjs.js"></script>
</html>

Le ficher monjs.js :
window.onload=Init;
function Init()
{
document.write('coucou');
}

Ce que je voudrai c'set que coucou s'affiche dans la page en cours c'est à dire avoir le resultat suivant :
bla bla bla bla bla bla bla bla........ coucou
Or à l'etat acctuel j'obtient :
une page vierge avec uniquement coucou


Merci
C'est un exemple simplifié biensur. En vrai, je veux afficher une image en fonction du contexte de la page c'est à dire en fonction des mots qui reviennent le plus souvent. Je doit donc attendre que la page soit totalement charger avant de faire ma tambouille pour recuperer les mots de la page
Messages postés
315
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
29 mai 2007
46
Bon je ne suis pas sur de bien comprendre ce que tu veux faire.
Le seul truc que je peux te dire est que si tu fais un document.write après le chargement de ta page tu détruits le code de celle ci. Donc, ta page contiendra uniquement le contenu du document.write.
En fait document.write doit être utilisé pendant la construction de la page et surtout pas àprès.
Suis-je clair ?

Explique moi clairement ce que tu veux je peux peut être t'aider.

A+
Le truc c'est que
coucou.... blablablabla
Ca serait parfait pour moi mais c'est pas le cas... j'ai juste une nouvelle page avec coucou. :\
Messages postés
315
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
29 mai 2007
46
Juste une question, pourquoi veux tu écrire coucou une fois le fichier chargé ?