Téléchargement
illégal
Posez votre question Signaler

[javascript] window.onload et document.write

Cydelic - Dernière réponse le 7 nov. 2009 à 21:42
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');
}
Lire la suite 

[javascript] window.onload et document.write »

13 réponses
Réponse
+11
moins plus
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)
Ajouter un commentaire
Réponse
+2
moins plus
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 ^^.
Ajouter un commentaire
Réponse
+2
moins plus
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.
Ajouter un commentaire
Réponse
+1
moins plus
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;
}
Sid - 25 juin 2008 à 23:56
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
w13winni - 17 août 2009 à 11:20
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
olandcieSid - 7 nov. 2009 à 21:42
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>
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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+
Ajouter un commentaire
Réponse
-1
moins plus
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
Ajouter un commentaire
Réponse
-4
moins plus
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. :\
Ajouter un commentaire
Réponse
-6
moins plus
Juste une question, pourquoi veux tu écrire coucou une fois le fichier chargé ?
Ajouter un commentaire
Ce document intitulé « [javascript] window.onload et document.write » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?