首頁 >web前端 >js教程 >為什麼我的'onclick”函數在使用者腳本中未定義,如何使用事件偵聽器修復它?

為什麼我的'onclick”函數在使用者腳本中未定義,如何使用事件偵聽器修復它?

Patricia Arquette
Patricia Arquette原創
2024-11-23 01:53:11381瀏覽

Why is my `onclick` function undefined in a userscript, and how can I fix it using event listeners?

Uncaught ReferenceError: Function is Not Defined with onclick

在嘗試為網站創建自定義表情腳本時,出現了導致錯誤“Uncaught ReferenceErrort ReferenceErrort Reference: 函數未使用onclick 定義。 ”

問題

腳本包含具有調用函數的onclick 屬性的span 標籤。但是,當單擊這些按鈕時,功能無法被識別。

解決方案

解決方案在於避免使用使用者腳本中的onclick屬性,因為它們在單獨的沙盒環境中運行來自目標頁面範圍。步驟操作:

將onclick 替換為事件監聽器

改為使用onclick屬性,將其替換為addEventListener():

使用資料屬性傳遞資料

<span>
由於我們無法直接將資料傳遞給事件監聽器,所以我們可以使用資料屬性:
document.getElementById("mySpan").addEventListener("click", myFunction, false);

追加表情功能

<span>
targetSpans = emoteTab[2].querySelectorAll("span[data-usage]");
for (var J in targetSpans) {
    targetSpans[J].addEventListener("click", appendEmote, false);
}
附加警告

function appendEmote(zEvent) {
    var emoteUsage = this.getAttribute("data-usage");
    shoutdata.value += emoteUsage;
}
1。一次。無效。 🎜>

以上是為什麼我的'onclick”函數在使用者腳本中未定義,如何使用事件偵聽器修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn