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!