從外部腳本確定Chrome 擴充功能安裝狀態
在開發與外部JavaScript 腳本互動的Chrome 擴充功能時,您可能需要確定是否您的擴充功能安裝在使用者的瀏覽器上。此功能可讓您相應地自訂腳本的行為。
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; });
從外部網站,您可以向擴充功能啟動訊息,如下所示:
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中文網其他相關文章!