ホームページ > ウェブフロントエンド > jsチュートリアル > Onclick 属性で「キャッチされない参照エラー: 関数が定義されていません」が発生するのはなぜですか? どのように修正すればよいですか?

Onclick 属性で「キャッチされない参照エラー: 関数が定義されていません」が発生するのはなぜですか? どのように修正すればよいですか?

Linda Hamilton
リリース: 2024-11-27 00:16:11
オリジナル
315 人が閲覧しました

Why Does

Onclick 属性で「キャッチされない参照エラー: 関数が定義されていません」

問題:

onclick 属性、エラー「Uncaught ReferenceError: 関数が定義されていません」

原因:

ユーザー スクリプトは、onclick がターゲット ページのスコープ内で動作する分離環境で実行されます。その結果、onclick はユーザースクリプトで定義された関数にアクセスできません。

解決策:

onclick の使用を避け、代わりに addEventListener() を利用します。例:

emoteTab[2].innerHTML += '<span>
ログイン後にコピー

更新コード:

for (i = 0; i < EmoteURLLines.length; i++) {
    if (checkIMG (EmoteURLLines[i])) {
        localStorage.setItem ("nameEmotes", JSON.stringify (EmoteNameLines));
        localStorage.setItem ("urlEmotes", JSON.stringify (EmoteURLLines));
        localStorage.setItem ("usageEmotes", JSON.stringify (EmoteUsageLines));
        if (i == 0) {
            console.log (resetSlot ());
        }
        emoteTab[2].innerHTML  += '<span>
ログイン後にコピー
var targetSpans = emoteTab[2].querySelectorAll ("span[data-usage]");
for (var J in targetSpans) {
    targetSpans[J].addEventListener ("click", appendEmote, false);
}
ログイン後にコピー

追加の警告:

  • 複数の要素に同じ ID を使用しないでください。 (無効)。
  • innerHTML または externalHTML を使用すると、影響を受けるノードのイベント ハンドラーが上書きされる可能性があることに注意してください。

以上がOnclick 属性で「キャッチされない参照エラー: 関数が定義されていません」が発生するのはなぜですか? どのように修正すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート