Maison > interface Web > js tutoriel > Comment accéder aux variables globales à partir des scripts de contenu dans les extensions Chrome ?

Comment accéder aux variables globales à partir des scripts de contenu dans les extensions Chrome ?

Patricia Arquette
Libérer: 2024-10-26 05:45:02
original
696 Les gens l'ont consulté

How to Access Global Variables from Content Scripts in Chrome Extensions?

Accès aux variables globales à partir des scripts de contenu dans les extensions Chrome

Malgré les tentatives de récupération de la variable GLOBALS du message Gmail actuel via jQuery.load( ) dans un script de contenu, les erreurs persistent en raison de l'isolement.

Solution : injection de script et écouteurs d'événements

Pour accéder aux propriétés globales de la fenêtre de la page, pensez à utiliser :

  1. Injection de script :Injecter un nouvel élément de script dans le contexte de la page :
var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head||document.documentElement).appendChild(s);
Copier après la connexion

Une fois le script chargé, supprimez-le pour plus de propreté :

s.onload = function() {
    s.remove();
};
Copier après la connexion
  1. Écouteurs d'événements :Utilisez des écouteurs d'événements pour transférer des données :
document.addEventListener('RW759_connectExtension', function(e) {
    // e.detail contains transferred data, e.g., GLOBALS
});
Copier après la connexion

Exemple de code :

contentscript.js (Exécuter à document_end) :

// Inject script
var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head||document.documentElement).appendChild(s);

// Event listener
document.addEventListener('RW759_connectExtension', function(e) {
    alert(e.detail); // Access GLOBALS
});
Copier après la connexion

script.js ("run_at": "document_end" dans le manifeste) :

setTimeout(function() {
    document.dispatchEvent(new CustomEvent('RW759_connectExtension', {
        detail: GLOBALS // Send data
    }));
}, 0);
Copier après la connexion

N'oubliez pas d'ajouter "script.js" à la section web_accessible_resources dans le fichier manifeste.

Bonne pratique :

Réduire la logique dans les injections et gère la plupart des traitements dans le script de contenu pour garantir la fiabilité de l'extension et l'accès à des fonctionnalités supplémentaires telles que les API Chrome.*.

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!

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