Memasukkan skrip ke dalam halaman menggunakan innerHTML ke
HTML yang disediakan dalam kod sampel menunjukkan percubaan pelaksanaan skrip dalam
Untuk menangani isu ini, kami membentangkan kaedah yang menggantikan semua skrip tidak boleh laku secara rekursif dengan skrip boleh laku. Kaedah ini, yang dikenali sebagai nodeScriptReplace, merentasi pepohon DOM dan mengenal pasti elemen skrip. Jika skrip tidak boleh laku ditemui, ia mengklonkan skrip, menetapkan kandungan boleh laku dan menggantikan elemen skrip asal, membolehkannya dilaksanakan.
Selain itu, fungsi nodeScriptClone mencipta elemen skrip boleh laku dengan mengekstrak innerHTML skrip tidak boleh laku dan menetapkan atributnya. Atribut ini dipindahkan ke skrip boleh laku baharu, memastikan kelakuan yang betul.
Fungsi nodeScriptIs menyemak sama ada nod yang diberikan ialah elemen skrip dengan memeriksa nama tegnya.
Untuk melaksanakan skrip dan paparan amaran "hai", hanya panggil nodeScriptReplace pada elemen akar halaman. Coretan kod di bawah menunjukkan perkara ini:
nodeScriptReplace(document.getElementsByTagName("body")[0]);
Kaedah ini menyediakan mekanisme yang teguh untuk melaksanakan skrip yang ditambahkan pada halaman menggunakan innerHTML, memastikan kefungsian yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa Skrip Tidak Ditambah melalui innerHTML Sentiasa Laksanakan dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!