ホームページ >ウェブフロントエンド >jsチュートリアル >インライン onclick 関数が Chrome/Firefox 拡張機能で動作しないのはなぜですか?

インライン onclick 関数が Chrome/Firefox 拡張機能で動作しないのはなぜですか?

DDD
DDDオリジナル
2024-12-28 10:09:15159ブラウズ

Why Doesn't My Inline onclick Function Work in a Chrome/Firefox Extension?

拡張機能の onclick またはインライン スクリプトが機能しません

問題: 拡張機能の

onClick 関数は、標準のブラウザでは正常に動作しますが、意図した機能を実行できません。

コード例:

function hellYeah(text) {
  document.getElementById("text-holder").innerHTML = text;
}
<!doctype html>
<html>
  <head>
    <title>Getting Started Extension's Popup</title>
    <script src="popup.js"></script>
  </head>
  <body>
    <div>

ユーザーが「hyhy」をクリックすると、「ha」は「xxx」に変わるはずですが、拡張機能では機能しません。

答え:

Chrome 拡張機能と Firefox WebExtensions ではインライン JavaScript が許可されません。したがって、他のメソッドを使用してイベントをバインドする必要があります。

1 つの方法は、ID をリンク (例: ) に割り当て、popup.js ファイルで addEventListener を使用してイベントをバインドすることです:

document.addEventListener('DOMContentLoaded', function() {
    var link = document.getElementById('link');
    // 点击逻辑如下:
    link.addEventListener('click', function() {
        hellYeah('xxx');
    });
});

.js 別のスクリプト ファイルとしてロードされます:

<script src="popup.js"></script>

以上がインライン onclick 関数が Chrome/Firefox 拡張機能で動作しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。