Maison > interface Web > js tutoriel > Comment puis-je accéder aux variables globales dans les messages Gmail à l'aide d'une extension Chrome ?

Comment puis-je accéder aux variables globales dans les messages Gmail à l'aide d'une extension Chrome ?

DDD
Libérer: 2024-10-26 06:56:02
original
638 Les gens l'ont consulté

How Can I Access Global Variables in Gmail Messages Using a Chrome Extension?

Accès aux variables globales dans les messages Gmail avec une extension Chrome

Introduction

La création d'extensions Chrome peut vous donner la possibilité de modifier le comportement des pages Web. L'un de ces besoins est de récupérer les variables globales de la page, comme la variable GLOBALS dans les messages Gmail.

Le problème

Malheureusement, les scripts de contenu s'exécutent dans un environnement isolé, empêchant l'accès direct au contenu de la page. propriétés de fenêtre comme GLOBALS. La fonction .load() de jQuery ne parvient pas à le récupérer, ce qui entraîne des ReferenceErrors. Cela se produit malgré la possibilité d'accéder à GLOBALS via la console des outils de développement.

Solution : communication inter-contexte

Pour combler ce fossé de communication, vous pouvez utiliser l'une des deux méthodes suivantes :

1. Injection de script :

Injectez un nouvel élément de script dans le contexte de la page. Ce script peut récupérer les données souhaitées et les renvoyer au script de contenu.

2. Écouteurs d'événements :

Utilisez des écouteurs d'événements pour transmettre des données entre la page et le script de contenu. Le script de contenu peut écouter les événements personnalisés déclenchés par le script de page avec les informations souhaitées.

Exemple d'implémentation utilisant l'injection de script

Script de contenu (run_at : "document_end") :

<code class="js">var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head || document.documentElement).appendChild(s);
s.onload = function() {
    s.remove();
};</code>
Copier après la connexion

Script.js (script injecté) :

<code class="js">setTimeout(function() {
    document.dispatchEvent(new CustomEvent('RW759_connectExtension', {
        detail: GLOBALS
    }));
}, 0);</code>
Copier après la connexion

Considérations

  • Assurez-vous que "script.js" est ajouté à la section web_accessible_resources du fichier manifeste.
  • Les scripts de contenu doivent gérer la majorité de la logique, car ils ont accès à des fonctionnalités supplémentaires non disponibles dans les scripts injectés.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal