Maison  >  Article  >  interface Web  >  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
DDDoriginal
2024-10-26 06:56:02544parcourir

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>

Script.js (script injecté) :

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

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!

Déclaration:
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