ホームページ > ウェブフロントエンド > jsチュートリアル > 外部スクリプトから Chrome 拡張機能のインストール ステータスを確認する方法

外部スクリプトから Chrome 拡張機能のインストール ステータスを確認する方法

Susan Sarandon
リリース: 2024-11-17 01:29:03
オリジナル
726 人が閲覧しました

How to Determine Chrome Extension Installation Status from an External Script?

外部スクリプトから Chrome 拡張機能のインストール ステータスを確認する

外部 JavaScript スクリプトと対話する Chrome 拡張機能を開発する場合、次のことを確認する必要がある場合があります。拡張機能がユーザーのブラウザにインストールされます。この機能を使用すると、スクリプトの動作をそれに応じて調整できます。

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 サイトから、次のように拡張機能へのメッセージを開始できます。

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.json ファイルにエントリを必ず追加してください。次の構文を使用します:

"externally_connectable": {
    "matches": ["*://localhost/*", "*://your.domain.com/*"]
},
ログイン後にコピー

2021更新:

chrome.runtime.sendMessage を呼び出すと、拡張機能がインストールされていないか無効になっている場合、例外がスローされます。この状況に対処するには、sendMessage コールバック内に次の検証を追加します:

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

以上が外部スクリプトから Chrome 拡張機能のインストール ステータスを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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