Mengapa Skrip Pengguna Saya Mendapat \'ReferenceError: Function Not Defined\' pada Klik Elemen HTML dan Bagaimana Saya Boleh Membetulkannya?

Barbara Streisand
Lepaskan: 2024-11-21 12:20:10
asal
551 orang telah melayarinya

Why Does My Userscript Get a

ReferenceError: Function Not Defined on HTML Element Click

Isu

Apabila cuba membuat skrip pengguna untuk menambah emote tersuai pada tapak web, ralat "Uncaught ReferenceError: function is not definition" berlaku apabila mengklik butang dengan onclick atribut.

Penyelesaian

Isu timbul daripada penggunaan atribut onclick dalam skrip pengguna. Skrip pengguna dijalankan dalam persekitaran kotak pasir yang berasingan daripada halaman sasaran, jadi peristiwa onclick yang dibuat dalam skrip pengguna tidak boleh mengakses fungsi yang ditakrifkan dalam halaman.

Untuk menyelesaikannya, adalah penting untuk menggunakan addEventListener() dan bukannya atribut onclick. Ini memastikan pendengar acara ditambah dengan betul dan boleh mengakses fungsi yang ditakrifkan dalam skrip pengguna.

Contoh

Berikut ialah versi semakan kod yang menyelesaikan isu:

// Replace onclick attribute with event listener
emoteTab[2].innerHTML += '<span>
Salin selepas log masuk

Pertimbangan Tambahan

Atribut Data Penggunaan:

Daripada menghantar data dalam atribut onclick pengendali acara, seperti yang telah dicuba sebelum ini, adalah disyorkan untuk menggunakan atribut data untuk menyimpan data dalam elemen HTML itu sendiri.

Penduaan ID:

Elakkan menggunakan semula id yang sama untuk berbilang elemen, kerana ia adalah amalan tidak sah yang boleh membawa kepada tingkah laku yang tidak dijangka.

Timpa InnerHTML:

Apabila mengubah suai innerHTML elemen, mana-mana pengendali acara sedia ada akan dialih keluar. Oleh itu, adalah penting untuk mencipta semula pendengar acara selepas membuat perubahan HTML.

Atas ialah kandungan terperinci Mengapa Skrip Pengguna Saya Mendapat \'ReferenceError: Function Not Defined\' pada Klik Elemen HTML dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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