Maison  >  Article  >  interface Web  >  Quelles sont les conséquences de l’utilisation de document.write() dans les fonctions JavaScript ?

Quelles sont les conséquences de l’utilisation de document.write() dans les fonctions JavaScript ?

DDD
DDDoriginal
2024-10-24 07:38:02737parcourir

What are the Consequences of Using document.write() in JavaScript Functions?

Comportement de Document.write() dans les appels de fonction

Dans un document HTML, appeler document.write() dans une fonction peut avoir des conséquences inattendues, comme le montre le code suivant :

<code class="html"><input type="checkbox" name="thebox" />
<input type="button" onClick="validator()" name="validation" value="Press me for validation" /></code>
<code class="javascript">function validator() {
    if (document.myForm.thebox.checked)
        document.write("checkBox is checked");
    else
        document.write("checkBox is NOT checked");
}</code>

Problème :Après avoir cliqué sur le bouton de validation, les éléments du formulaire (case à cocher et bouton) disparaissent de la page.

Explication :

document.write() est une fonction puissante qui écrit directement dans le flux de sortie du document HTML. Lorsqu'elle est appelée dans une fonction, document.write() a les implications suivantes :

  • Le flux de sortie du document est probablement déjà fermé lorsque la fonction est invoquée car le chargement du document est terminé.
  • L'appel de document.write() sur un flux fermé ouvre automatiquement le document, écrasant son contenu existant.

Dans ce cas, lorsque validator() est appelé, document.write() rouvre automatiquement le document , qui efface toute la page, y compris les éléments du formulaire.

Solution :

Pour éviter ce comportement, il convient d'utiliser des méthodes alternatives pour manipuler le contenu du document, telles que document.createElement() ou les API de manipulation DOM.

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!

Déclaration:
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