Rumah >hujung hadapan web >tutorial js >Apakah Akibat Menggunakan document.write() dalam Fungsi JavaScript?

Apakah Akibat Menggunakan document.write() dalam Fungsi JavaScript?

DDD
DDDasal
2024-10-24 07:38:02853semak imbas

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

Gelagat Document.write() dalam Panggilan Fungsi

Dalam dokumen HTML, memanggil document.write() dalam fungsi boleh mempunyai akibat yang tidak dijangka, seperti yang dilihat dalam kod berikut:

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

Isu: Selepas mengklik butang pengesahan, elemen borang (kotak semak dan butang) hilang daripada halaman.

Penjelasan:

document.write() ialah fungsi berkuasa yang menulis terus ke aliran keluaran dokumen HTML. Apabila dipanggil di dalam fungsi, document.write() mempunyai implikasi berikut:

  • Strim output dokumen mungkin sudah ditutup apabila fungsi dipanggil kerana dokumen telah selesai dimuatkan.
  • Memanggil document.write() pada strim tertutup secara automatik membuka dokumen, menimpa kandungan sedia ada.

Dalam kes ini, apabila validator() dipanggil, document.write() membuka semula dokumen secara automatik , yang mengosongkan keseluruhan halaman, termasuk elemen borang.

Penyelesaian:

Untuk mengelakkan tingkah laku ini, seseorang harus menggunakan kaedah alternatif untuk memanipulasi kandungan dokumen, seperti document.createElement() atau API manipulasi DOM.

Atas ialah kandungan terperinci Apakah Akibat Menggunakan document.write() dalam Fungsi JavaScript?. 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