Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah document.write() Kosongkan Halaman?

Mengapakah document.write() Kosongkan Halaman?

Susan Sarandon
Susan Sarandonasal
2024-10-24 06:59:30752semak imbas

Why Does document.write() Clear the Page?

Mengapa Document.write Kosongkan Halaman?

Apabila menggunakan kaedah document.write() dalam JavaScript, pengaturcara sering menghadapi masalah yang pelik tingkah laku: menggunakan document.write() dalam pengendali acara, seperti onClick, boleh menyebabkan dokumen itu dikosongkan.

Untuk memahami hasil yang tidak dijangka ini, adalah penting untuk memahami sifat document.write(). Fungsi ini menulis kepada strim dokumen, iaitu aliran berterusan data yang mewakili dokumen yang dipaparkan dalam penyemak imbas.

Dalam contoh kod yang disediakan:

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

Fungsi validator() dicetuskan apabila butang "pengesahan" diklik. Inilah yang berlaku:

  1. Pada ketika ini, dokumen kemungkinan besar telah selesai dimuatkan, yang bermaksud strim dokumen ditutup.
  2. Memanggil document.write() secara automatik mencetuskan document.open( ), yang mengosongkan dokumen semasa, mengalih keluar semua elemen yang sedia ada.
  3. Seterusnya, teks yang dinyatakan dalam document.write() dipaparkan dalam dokumen yang kini kosong.

Oleh itu, elemen borang (kotak semak dan butang) dialih keluar daripada halaman kerana keseluruhan dokumen dimuat semula, menggantikan kandungan sebelumnya dengan output document.write().

Oleh itu, apabila bekerja dengan document.write() , adalah penting untuk memastikan bahawa aliran dokumen kekal terbuka dengan menggunakan document.open() secara eksplisit sebelum menulis kepadanya. Jika tidak, tingkah laku yang tidak dapat diramalkan untuk mengosongkan dokumen boleh mengganggu kefungsian yang dimaksudkan.

Atas ialah kandungan terperinci Mengapakah document.write() Kosongkan Halaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn