Maison > interface Web > js tutoriel > Les sites Web peuvent-ils détecter si une extension Chrome est installée ?

Les sites Web peuvent-ils détecter si une extension Chrome est installée ?

Barbara Streisand
Libérer: 2024-11-21 18:22:14
original
1015 Les gens l'ont consulté

Can Websites Detect If a Chrome Extension is Installed?

Comment détecter l'installation d'une extension Chrome à partir d'un script externe

Afin de créer une expérience utilisateur transparente, il est souvent nécessaire de déterminer si un utilisateur dispose d'une extension Chrome spécifique installé. Cela permet aux sites Web d'adapter leur contenu et leurs fonctionnalités en fonction de la présence de l'extension.

Selon les dernières mises à jour, Chrome offre désormais la possibilité d'envoyer des messages d'un site Web vers une extension. Pour y parvenir, suivez ces étapes :

  1. Dans le fichier background.js de l'extension, ajoutez le code suivant :

    chrome.runtime.onMessageExternal.addListener(
        function(request, sender, sendResponse) {
            if (request) {
                if (request.message) {
                    if (request.message == "version") {
                        sendResponse({version: 1.0});
                    }
                }
            }
            return true;
        });
    Copier après la connexion
  2. Depuis le site Internet, vous pouvez envoyer un message au 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;
            }
        });
    Copier après la connexion
  3. Une fois que l'extension répond, vous pouvez vérifier la variable hasExtension pour déterminer l'état d'installation de l'utilisateur.

Notez que le l'échange de messages est asynchrone, vous devrez donc peut-être implémenter une logique pour gérer le potentiel de retard.

Modifier :

  1. Ajouter une entrée au fichier manifest.json spécifiant les domaines autorisés à envoyer des messages à l'extension :

    "externally_connectable": {
        "matches": ["*://localhost/*", "*://your.domain.com/*"]
    },
    Copier après la connexion
  2. Dans le rappel de chrome.runtime.sendMessage, gérez l'erreur potentielle qui peut survenir si l'extension n'est pas installée ou est désactivée :

    if (chrome.runtime.lastError) {
        // handle error 
    }
    Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal