[javascript] window.onload et document.write

Cydelic -  
 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

  1. Khelan Messages postés 4 Statut Membre 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)
    11
  2. Nashouille
     
    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 ^^.
    2
  3. Nashouille
     
    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.
    2
  4. Hwi_noree
     
    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;
    }
    1
    1. Sid
       
      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
      0
      1. w13winni > 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
        0
      2. olandcie > 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>
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    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 ?
    0
  7. Cydelic
     
    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
    0
  8. Cydelic
     
    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
    0
  9. slolo2000 Messages postés 315 Statut Membre 48
     
    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+
    0
  10. Cydelic
     
    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. :\
    -3
  11. slolo2000 Messages postés 315 Statut Membre 48
     
    Juste une question, pourquoi veux tu écrire coucou une fois le fichier chargé ?
    -5