Maison > interface Web > js tutoriel > Pourquoi document.write() efface-t-il la page ?

Pourquoi document.write() efface-t-il la page ?

Susan Sarandon
Libérer: 2024-10-24 06:59:30
original
836 Les gens l'ont consulté

Why Does document.write() Clear the Page?

Pourquoi Document.write efface-t-il la page ?

Lors de l'utilisation de la méthode document.write() en JavaScript, les programmeurs rencontrent souvent un problème particulier comportement : l'invocation de document.write() dans un gestionnaire d'événements, tel que onClick, peut entraîner l'effacement du document.

Pour comprendre ce résultat inattendu, il est essentiel de saisir la nature de document.write(). Cette fonction écrit dans le flux de documents, qui est le flux continu de données représentant le document affiché dans le navigateur.

Dans l'exemple de code fourni :

<code class="html"><form name="myForm">
    <input type="checkbox" name="thebox" />
    <input type="button" onClick="validator()" name="validation" value="Press me for validation" />
</form>

<script type="text/javascript">
    function validator() {
        if (document.myForm.thebox.checked) {
            document.write("checkBox is checked");
        } else {
            document.write("checkBox is NOT checked");
        }
    }
</script></code>
Copier après la connexion

La fonction validator() est déclenché lorsque le bouton "validation" est cliqué. Voici ce qui se passe :

  1. À ce stade, le chargement du document est probablement terminé, ce qui signifie que le flux du document est fermé.
  2. L'appel de document.write() déclenche automatiquement document.open( ), qui efface le document actuel, supprimant tous les éléments existants.
  3. Par la suite, le texte spécifié dans document.write() est rendu dans le document désormais vide.

Par conséquent, les éléments du formulaire (case à cocher et bouton) sont supprimés de la page car l'ensemble du document est actualisé, remplaçant le contenu précédent par la sortie de document.write().

Par conséquent, lorsque vous travaillez avec document.write() , il est crucial de s'assurer que le flux de documents reste ouvert en utilisant explicitement document.open() avant d'y écrire. Sinon, le comportement imprévisible de la suppression du document peut perturber la fonctionnalité prévue.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal