ホームページ  >  記事  >  ウェブフロントエンド  >  document.write() がページをクリアするのはなぜですか?

document.write() がページをクリアするのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-24 06:59:30752ブラウズ

Why Does document.write() Clear the Page?

Document.write がページをクリアするのはなぜですか?

JavaScript で document.write() メソッドを使用するとき、プログラマーはしばしば特有のエラーに遭遇します。動作: onClick などのイベント ハンドラー内で document.write() を呼び出すと、ドキュメントがクリアされる可能性があります。

この予期しない結果を理解するには、document.write() の性質を理解することが不可欠です。この関数は、ブラウザーに表示されているドキュメントを表す連続的なデータ フローであるドキュメント ストリームに書き込みます。

提供されたコード例:

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

validator() 関数「検証」ボタンをクリックするとトリガーされます。何が起こるかは次のとおりです。

  1. この時点で、ドキュメントの読み込みが完了している可能性があります。これは、ドキュメント ストリームが閉じられていることを意味します。
  2. document.write() を呼び出すと、document.open() が自動的にトリガーされます。 ) により、現在のドキュメントがクリアされ、既存の要素がすべて削除されます。
  3. その後、document.write() で指定されたテキストが、空になったドキュメントにレンダリングされます。

結果として、ドキュメント全体が更新され、前の内容が document.write() の出力に置き換えられるため、フォーム要素 (チェックボックスとボタン) がページから削除されます。

したがって、document.write() を使用する場合は、 、ドキュメント ストリームに書き込む前に、 document.open() を明示的に使用して、ドキュメント ストリームが開いたままであることを確認することが重要です。そうしないと、ドキュメントをクリアするという予期せぬ動作により、意図した機能が中断される可能性があります。

以上がdocument.write() がページをクリアするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。