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.json にエントリを必ず追加してください。ファイルで、拡張子へのメッセージの送信を許可するドメインを指定します:
"externally_connectable": { "matches": ["http://mylocalhostextensiontest/*", "http://*:*/*"] },
非同期の性質とエラー処理
メッセージ受け渡しメカニズムは非同期であるため、コード内でこれを処理する必要がある場合があることに注意してください。
さらに、拡張機能がインストールされていないか無効になっている場合、chrome.runtime.sendMessage は例外をスローします。このような場合は、次のメッセージを送信した後に chrome.runtime.lastError を確認してください:
if (chrome.runtime.lastError) { // Handle the error here... }
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3