ホームページ > ウェブフロントエンド > jsチュートリアル > Web サイトは Chrome 拡張機能がインストールされているかどうかを検出できますか?

Web サイトは Chrome 拡張機能がインストールされているかどうかを検出できますか?

Barbara Streisand
リリース: 2024-11-21 18:22:14
オリジナル
1015 人が閲覧しました

Can Websites Detect If a Chrome Extension is Installed?

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

シームレスなユーザー エクスペリエンスを作成するには、多くの場合、ユーザーが特定の Chrome 拡張機能を使用しているかどうかを確認する必要があります。インストールされています。これにより、Web サイトは拡張機能の存在に基づいてコンテンツと機能を適応させることができます。

最新のアップデートによると、Chrome は Web サイトから拡張機能にメッセージを送信する機能を提供するようになりました。これを実現するには、次の手順に従います。

  1. 拡張機能の 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;
        });
    ログイン後にコピー
  2. ウェブサイトからメッセージを送信できます。 extension:

    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;
            }
        });
    ログイン後にコピー
  3. 拡張機能が応答したら、hasExtension 変数をチェックしてユーザーのインストール ステータスを確認できます。

メッセージ交換は非同期であるため、メッセージ交換の可能性を処理するロジックを実装する必要がある場合があります。遅延。

編集:

  1. 許可されるドメインを指定するエントリを manifest.json ファイルに追加します。にメッセージを送信しますextension:

    "externally_connectable": {
        "matches": ["*://localhost/*", "*://your.domain.com/*"]
    },
    ログイン後にコピー
  2. chrome.runtime.sendMessage のコールバックで、拡張機能がインストールされていないか無効になっている場合に発生する可能性のある潜在的なエラーを処理します。

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

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

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