2010-10-30 5 views
3

Je suis novice dans le javascript et jQuery. C'est le seul code que j'ai sur une page sinon vide:Une question JavaScript très basique sur la fonction document.write

<script type="text/javascript" src="jquery.min.js"></script> 

    <script type="text/javascript"> 
     $(document).ready(function() { 

      document.write('Hello World'); 

     }); 
    </script> 

Quand je charge la page dans un navigateur (en utilisant FireFox) l'icône d'état ainsi que la zone de favicon de l'onglet ouvert montre les symboles de chargement, comme if pour indiquer que la fonction document.write est en cours d'exécution en boucle.

Pourquoi est-ce? J'essaie simplement de dire "une fois que la page est prête, affichez la chaîne Hello World ONCE". Quel est le problème ici?

p.s. J'ai remarqué que si je sors la partie document.ready du code il n'y a pas de boucle. Vous ne savez pas pourquoi le gestionnaire d'événement prêt provoque ce problème.

Répondre

6

document.write, s'il est exécuté après le chargement du DOM, réécrit complètement la page. Il ne peut être exécuté que lorsque le DOM est en cours de chargement, et non après, et $(document).ready() se produit après le chargement du DOM. Vous avez besoin de append().

<script type="text/javascript"> 
    $(document).ready(function() { 

     $('body').append('Hello World'); 

    }); 
</script> 
+0

+1 pour l'édition '$ (document) .ready() se produit après [...]' –