Heim > Web-Frontend > js-Tutorial > Hauptteil

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

Mary-Kate Olsen
Freigeben: 2024-11-26 01:27:10
Original
899 Leute haben es durchsucht

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;
  }
);
Nach dem Login kopieren

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;
    }
  }
);
Nach dem Login kopieren

Ü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://*:*/*"]
},
Nach dem Login kopieren

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...
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage