首頁  >  文章  >  web前端  >  如何從外部腳本確定 Chrome 擴充功能安裝狀態?

如何從外部腳本確定 Chrome 擴充功能安裝狀態?

Susan Sarandon
Susan Sarandon原創
2024-11-17 01:29:03651瀏覽

How to Determine Chrome Extension Installation Status from an External Script?

從外部腳本確定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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn