Maison >interface Web >js tutoriel >Comment accéder aux variables globales à partir des scripts de contenu dans les extensions Chrome ?
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 :
var s = document.createElement('script'); s.src = chrome.extension.getURL('script.js'); (document.head||document.documentElement).appendChild(s);
Une fois le script chargé, supprimez-le pour plus de propreté :
s.onload = function() { s.remove(); };
document.addEventListener('RW759_connectExtension', function(e) { // e.detail contains transferred data, e.g., GLOBALS });
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 });
script.js ("run_at": "document_end" dans le manifeste) :
setTimeout(function() { document.dispatchEvent(new CustomEvent('RW759_connectExtension', { detail: GLOBALS // Send data })); }, 0);
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!