Um ein nahtloses Benutzererlebnis zu schaffen, ist es häufig erforderlich, festzustellen, ob ein Benutzer über eine bestimmte Chrome-Erweiterung verfügt installiert. Dadurch können Websites ihren Inhalt und ihre Funktionalität basierend auf dem Vorhandensein der Erweiterung anpassen.
Den neuesten Updates bietet Chrome jetzt die Möglichkeit, Nachrichten von einer Website an eine Erweiterung zu senden. Um dies zu erreichen, befolgen Sie diese Schritte:
Fügen Sie in der Datei background.js der Erweiterung den folgenden Code hinzu:
chrome.runtime.onMessageExternal.addListener( function(request, sender, sendResponse) { if (request) { if (request.message) { if (request.message == "version") { sendResponse({version: 1.0}); } } } return true; });
Von der Website aus können Sie eine Nachricht an senden 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; } });
Beachten Sie, dass die Der Nachrichtenaustausch erfolgt asynchron, daher müssen Sie möglicherweise Logik implementieren, um das Potenzial dafür zu bewältigen Verzögerung.
Bearbeiten:
Fügen Sie einen Eintrag zur Datei manifest.json hinzu, der die Domänen angibt, die zulässig sind Senden Sie Nachrichten an die Nebenstelle:
"externally_connectable": { "matches": ["*://localhost/*", "*://your.domain.com/*"] },
Im Rückruf von chrome.runtime.sendMessage, behandeln Sie den potenziellen Fehler, der auftreten kann, wenn die Erweiterung nicht installiert oder deaktiviert ist:
if (chrome.runtime.lastError) { // handle error }
Das obige ist der detaillierte Inhalt vonKönnen Websites erkennen, ob eine Chrome-Erweiterung installiert ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!