JavaScript を使用して Chrome 拡張機能がインストールされているかどうかを検出するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-26 01:27:10
オリジナル
902 人が閲覧しました

How can I detect if a Chrome extension is installed using JavaScript?

JavaScript での Chrome 拡張機能のインストールの検出

Chrome 拡張機能を構築する際、拡張機能がファイル内からインストールされているかどうかを判断することが必要になる場合があります。外部JavaScriptスクリプト。これは、拡張機能の存在に基づいて Web コンテンツをカスタマイズするのに役立ちます。

Chrome のドキュメントによると、Web サイトから拡張機能にメッセージを渡すことでこれを実現できます。

コードの実装

拡張機能のbackground.js (またはその他のコンテンツ以外のスクリプト) ファイルに、次のコードを追加します。メッセージ リスナー:

chrome.runtime.onMessageExternal.addListener(
  function(request, sender, sendResponse) {
    if (request) {
      if (request.message) {
        if (request.message == "version") {
          sendResponse({version: 1.0});
        }
      }
    }
    return true;
  }
);
ログイン後にコピー

このリスナーは Web サイトからメッセージを受信します。

Web サイトのスクリプトから、拡張機能の ID:

var hasExtension = false;

chrome.runtime.sendMessage(extensionId, { message: "version" },
  function (reply) {
    if (reply) {
      if (reply.version) {
        if (reply.version >= requiredVersion) {
          hasExtension = true;
        }
      }
    } else {
      hasExtension = false;
    }
  }
);
ログイン後にコピー

にメッセージを送信します。 hasExtension 変数をチェックして、拡張機能がインストールされているかどうかを確認します。

Manifest構成

必ず、manifest.json ファイルにエントリを追加して、拡張機能へのメッセージの送信を許可するドメインを指定します。

"externally_connectable": {
  "matches": ["http://mylocalhostextensiontest/*", "http://*:*/*"]
},
ログイン後にコピー

非同期の性質とエラー処理

メッセージ受け渡しメカニズムは非同期であることに注意してください。コードでこれを処理する必要がある場合があります。

さらに、拡張機能がインストールされていないか無効になっている場合、chrome.runtime.sendMessage は例外をスローします。このような場合は、メッセージを送信した後に chrome.runtime.lastError がないか確認してください:

if (chrome.runtime.lastError) {
  // Handle the error here...
}
ログイン後にコピー

以上がJavaScript を使用して Chrome 拡張機能がインストールされているかどうかを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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