Détection de l'installation d'une extension Chrome en JavaScript
Lors de la création d'une extension Chrome, il peut s'avérer nécessaire de déterminer si l'extension est installée à partir d'un script JavaScript externe. Cela facilite la personnalisation du contenu Web en fonction de la présence de l'extension.
Selon la documentation de Chrome, il est possible d'y parvenir en transmettant un message du site Web à l'extension.
Implémentation du code
Dans le fichier background.js de l'extension (ou tout autre script sans contenu), ajoutez un message auditeur :
chrome.runtime.onMessageExternal.addListener( function(request, sender, sendResponse) { if (request) { if (request.message) { if (request.message == "version") { sendResponse({version: 1.0}); } } } return true; } );
Cet auditeur recevra des messages du site Web.
À partir du script du site Web, envoyez un message à l'ID de l'extension :
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; } } );
Vérifiez le Variable hasExtension pour déterminer si l'extension est installée.
Manifeste Configuration
N'oubliez pas d'ajouter une entrée au fichier manifest.json, en précisant les domaines autorisés à envoyer des messages à l'extension :
"externally_connectable": { "matches": ["http://mylocalhostextensiontest/*", "http://*:*/*"] },
Nature asynchrone et Gestion des erreurs
Notez que le mécanisme de transmission des messages est asynchrone, vous devrez donc peut-être gérer cela dans votre code.
De plus, si l'extension n'est pas installée ou désactivée, chrome.runtime.sendMessage lèvera une exception. Dans de tels cas, recherchez chrome.runtime.lastError après avoir envoyé le message :
if (chrome.runtime.lastError) { // Handle the error here... }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!