首頁 >web前端 >js教程 >如何檢測是否使用 JavaScript 安裝了 Chrome 擴充功能?

如何檢測是否使用 JavaScript 安裝了 Chrome 擴充功能?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-26 01:27:10920瀏覽

How can I detect if a Chrome extension is installed using JavaScript?

在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中文網其他相關文章!

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