外部スクリプトから 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 サイトの他の関連記事を参照してください。