Mengapa Anda Tidak Boleh Melaksanakan Tulisan pada Dokumen dengan Skrip Asynchronously-Muat?

Susan Sarandon
Lepaskan: 2024-10-20 14:10:02
asal
259 orang telah melayarinya

Why Can't You Execute Write on Documents with Asynchronously-Loaded Scripts?

Laksanakan tulis pada dokumen: Apakah Isu dengan Skrip Asynchronously-Loaded?

Apabila bekerja dengan skrip yang dimuatkan secara tidak segerak, anda mungkin menghadapi ralat "Gagal melaksanakan 'tulis' pada dokumen. Tidak mungkin untuk menulis ke dalam dokumen daripada skrip luaran yang dimuatkan secara tak segerak melainkan ia dibuka secara eksplisit." Ini berlaku kerana skrip tak segerak dimuatkan selepas dokumen dihuraikan dan ditutup sepenuhnya, membuat perubahan terus kepada DOM menggunakan fungsi seperti document.write() tidak berkesan.

Memahami Penyelesaian

Untuk menyelesaikan isu ini, anda mesti menggantikan document.write() dengan manipulasi DOM yang jelas. Daripada bergantung pada sisipan kandungan automatik, anda perlu membuat elemen DOM secara manual dan memasukkannya dengan sewajarnya.

Contoh

Pertimbangkan skrip sebaris berikut yang menyisipkan merah Teks "Hello" ke dalam div "bekas":

<code class="html"><div id="container">
<script>
document.write('<span style="color:red">Hello</span>');
</script>
</div></code>
Salin selepas log masuk

Untuk melakukan tindakan yang sama dengan skrip yang dimuatkan secara tak segerak, anda akan menggantikan skrip sebaris dengan kod berikut:

<code class="javascript">var container = document.getElementById("container");
var content = document.createElement("span");
content.style.color = "red";
content.innerHTML = "Hello";
container.appendChild(content);</code>
Salin selepas log masuk

Sebagai alternatif, jika bekas itu tidak mempunyai kandungan lain, anda hanya boleh menulis ganti HTML dalamannya:

<code class="javascript">var container = document.getElementById("container");
container.innerHTML = '<span style="color:red;">Hello</span>';</code>
Salin selepas log masuk

Dengan mengguna pakai manipulasi DOM eksplisit, anda boleh memastikan bahawa skrip anda yang dimuatkan secara tak segerak berinteraksi dengan dokumen dengan berkesan, mengelakkan had yang dikenakan oleh pelaksanaan skrip tertangguh.

Atas ialah kandungan terperinci Mengapa Anda Tidak Boleh Melaksanakan Tulisan pada Dokumen dengan Skrip Asynchronously-Muat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan