首頁 > web前端 > js教程 > 為什麼我的使用者腳本的 onclick 屬性會導致「未捕獲的引用錯誤:函數未定義」?

為什麼我的使用者腳本的 onclick 屬性會導致「未捕獲的引用錯誤:函數未定義」?

Susan Sarandon
發布: 2024-11-19 06:58:02
原創
359 人瀏覽過

Why Does My Userscript's onclick Attribute Cause an

未解析的引用錯誤:函數未透過onclick 定義

問題

在使用者腳本中,嘗試透過onclick 屬性呼叫函數會導致未完成捕獲的引用錯誤:函數不是

調查

傳統的onclick 屬性行為(在腳本中定義函數)由於沙箱機製而無法在使用者腳本中運作。

解決方案

要解決此問題,請始終使用 addEventListener() 而不是 onclick

程式碼重構

將 onclick屬性替換為:

document.getElementById("ElementID").addEventListener("click", functionName, false);
登入後複製

其他問題

DOM 覆蓋和事件處理程序

避免使用innerHTML或outerHTMLMLMDOM 元素,覆蓋多次因為它會刪除現有的事件處理程序。

唯一 ID

確保每個元素都有唯一的 ID。重複使用 ID 會產生驗證問題。

範例

在此程式碼中,onclick 屬性已替換為 addEventListener(),並且 DOM 覆蓋問題已解決:

for (i = 0; i < EmoteURLLines.length; i++) {
    if (checkIMG (EmoteURLLines[i])) {
        emoteTab[2].innerHTML += '<span>
登入後複製

以上是為什麼我的使用者腳本的 onclick 屬性會導致「未捕獲的引用錯誤:函數未定義」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板