在JavaScript 中偵測Chrome 擴充功能安裝
在建置Chrome 擴充功能時,可能有必要確定該擴充功能是否是從外部JavaScript 腳本。這有助於根據擴充功能的存在來自訂網頁內容。
根據 Chrome 文檔,可以透過從網站到擴充功能傳遞訊息來實現此目的。
程式碼實作
在擴充功能的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; } );
此監聽器將從網站接收訊息。
從網站的腳本中,向擴充功能的 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中文網其他相關文章!