Rumah >hujung hadapan web >tutorial js >Mengapa Atribut onclick Skrip Pengguna Saya Menyebabkan \'Ralat Rujukan Tidak Ditangkap: fungsi tidak ditakrifkan\'?
Dalam skrip pengguna, percubaan untuk memanggil fungsi melalui atribut onclick menghasilkan Ralat Rujukan Tidak Ditangkap: fungsi tidak ditakrifkan.
Tingkah laku atribut onclick tradisional, di mana fungsi ditakrifkan dalam skrip, tidak berfungsi dalam skrip pengguna disebabkan oleh mekanisme kotak pasir.
Untuk menyelesaikan isu ini, sentiasa gunakan addEventListener() dan bukannya atribut onclick.
Ganti atribut onclick dengan:
document.getElementById("ElementID").addEventListener("click", functionName, false);
Tulis Ganti DOM dan Pengendali Acara
Elakkan menggunakan innerHTML atau outerHTML untuk menulis ganti elemen DOM beberapa kali, kerana ia mengalih keluar pengendali acara sedia ada.
ID Unik
Pastikan setiap elemen mempunyai ID unik. Menggunakan semula ID akan menghasilkan isu pengesahan.
Dalam kod ini, atribut onclick telah digantikan dengan addEventListener() dan isu yang ditimpa DOM telah ditangani:
for (i = 0; i < EmoteURLLines.length; i++) { if (checkIMG (EmoteURLLines[i])) { emoteTab[2].innerHTML += '<span>
Atas ialah kandungan terperinci Mengapa Atribut onclick Skrip Pengguna Saya Menyebabkan 'Ralat Rujukan Tidak Ditangkap: fungsi tidak ditakrifkan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!