Heim >Web-Frontend >js-Tutorial >Wie kann ich mithilfe von JavaScript erkennen, ob eine Chrome-Erweiterung installiert ist?

Wie kann ich mithilfe von JavaScript erkennen, ob eine Chrome-Erweiterung installiert ist?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-26 01:27:10965Durchsuche

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

Erkennen der Installation einer Chrome-Erweiterung in JavaScript

Beim Erstellen einer Chrome-Erweiterung kann es erforderlich sein, festzustellen, ob die Erweiterung aus einem heraus installiert wird externes JavaScript-Skript. Dies hilft bei der Anpassung von Webinhalten basierend auf dem Vorhandensein der Erweiterung.

Laut der Chrome-Dokumentation ist es möglich, dies durch Nachrichtenweitergabe von der Website an die Erweiterung zu erreichen.

Code-Implementierung

Fügen Sie in der Datei „background.js“ (oder einem anderen nicht inhaltsbezogenen Skript) der Erweiterung eine Nachricht hinzu Listener:

chrome.runtime.onMessageExternal.addListener(
  function(request, sender, sendResponse) {
    if (request) {
      if (request.message) {
        if (request.message == "version") {
          sendResponse({version: 1.0});
        }
      }
    }
    return true;
  }
);

Dieser Listener empfängt Nachrichten von der Website.

Senden Sie vom Skript der Website aus eine Nachricht an die ID der Erweiterung:

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;
    }
  }
);

Überprüfen Sie die hasExtension-Variable, um festzustellen, ob die Erweiterung installiert ist.

Manifest Konfiguration

Denken Sie daran, der Datei manifest.json einen Eintrag hinzuzufügen, der die Domänen angibt, die Nachrichten an die Erweiterung senden dürfen:

"externally_connectable": {
  "matches": ["http://mylocalhostextensiontest/*", "http://*:*/*"]
},

Asynchrone Natur und Fehlerbehandlung

Beachten Sie, dass der Nachrichtenübermittlungsmechanismus asynchron ist, sodass Sie dies möglicherweise in Ihrem eigenen behandeln müssen Code.

Darüber hinaus löst chrome.runtime.sendMessage eine Ausnahme aus, wenn die Erweiterung nicht installiert oder deaktiviert ist. Suchen Sie in solchen Fällen nach dem Senden der Nachricht nach chrome.runtime.lastError:

if (chrome.runtime.lastError) {
  // Handle the error here...
}

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von JavaScript erkennen, ob eine Chrome-Erweiterung installiert ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn