Document.body vs document.write [Résolu]

Signaler
Messages postés
29
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007
-
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour à tous!

Je n'arrive toujours pas très bien à comprendre ce que font document.body et document.write.
Cela fait seulement 2 semaines que je code du javascript. Et j'ai récupérér plusieurs scripts pour m'entraîner. Aussi, dans un, la fonction document.body.innerHTML est utilisée. Par la suite j'ai utilisé des document.getElementById (id ajouté par le document.body.innerHTML) pour rajouter du style.

Ensuite sur le second script, je vois document.write. Donc sans me pôser de questions j'utilise encore une fois des getElementById (id ajouté par document.write). Mais cette fois, il y a une erreur. Je décide donc de changer les document.write en document.body.innerHTML, mais rien à faire.
Un message d'erreur (sous IE6) m'indique que document.body est Null ou n'est pas un objet.

J'ai beau essayé tous les trucs possibles et imaginables, je n'obtiens que des erreurs.
Quelqu'un pourrait-il m'expliquer les différences d'utilisation entre les deux? afin d'entrevoir une solution peut-être... :/

Merci d'avance

4 réponses

Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
une chose à savoir avec document.write :
    si la page a été totalement interprétée, document.write efface cette page
       y compris le javascript ( cas, par exemple, de document.write qu'on
       appelle en cliquant sur un bouton )

après utiliser l'un ou l'autre, des arguments plaident pour l'un ou l'autre
    et d'autres en leur défaveur...

on peut faire aussi autrement et "mieux"  , plus "général"
    ( nécessaire même dans certains contextes )

>>m'indique que document.body est Nul
    si tu as une balise et pas de raisons (?)
    sans voir le script ... ( enfin, un extrait, tout ce qui est nécessaire
       mais seulement ça ), je dirais bien que l'erreur est à la ligne 68,
       mais je suis loin d'en être sûr... ;-)




<hr />



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



<hr />
Messages postés
246
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
21 décembre 2007
1
Salut
Le document.write sèrt à écrire dans la page et il éface tout le code de cette page.
Le document.body.innerHTML ne peut changer que le code qui est après la balise body
Pour document.getElementById("id de l\'élement"), ça sert à modifier un seul élement dans la page (sa source html, son style, .....) ou de récuperer son style ou sa source ....
Messages postés
29
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007

J'ai finalement réussi à faire ce que je recherchais. Je ne sais pas trop comment justement. Peut-être que j'avais mal écrit qqch. Peut-être que je l'avais placé à un endroit qu'il n'aimait pas...mais bon maintenant ça fonctionne.

Et, ce que je ne comprenais pas à la base bultez, c'est justement que mon "document.body" était dit ayant la valeur Null alors que j'avais ma balise dans mon html.

En tous cas merci pour vos réponses à tous les deux.
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
si c'est résolu : nickel,
mais nous (je me cite ?) :

sans voir le script ... ( enfin, un extrait, tout ce qui
        est nécessaire mais seulement ça ), on ne pouvait pas faire grand chose.



<hr />



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



<hr />