Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich mit einer Chrome-Erweiterung auf globale Variablen in Gmail-Nachrichten zugreifen?

Wie kann ich mit einer Chrome-Erweiterung auf globale Variablen in Gmail-Nachrichten zugreifen?

DDD
DDDOriginal
2024-10-26 06:56:02616Durchsuche

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

Zugriff auf globale Variablen in Gmail-Nachrichten mit einer Chrome-Erweiterung

Einführung

Durch das Erstellen von Chrome-Erweiterungen können Sie das Verhalten von Webseiten ändern. Ein solcher Bedarf besteht darin, globale Variablen von der Seite abzurufen, wie die GLOBALS-Variable in Gmail-Nachrichten.

Das Problem

Leider werden Inhaltsskripte in einer isolierten Umgebung ausgeführt, was den direkten Zugriff auf die Seite verhindert Fenstereigenschaften wie GLOBALS. Die .load()-Funktion von jQuery kann sie nicht abrufen, was zu ReferenceErrors führt. Dies geschieht, obwohl über die Konsole der Entwicklertools auf GLOBALS zugegriffen werden kann.

Lösung: Kontextübergreifende Kommunikation

Um diese Kommunikationslücke zu schließen, können Sie eine von zwei Methoden anwenden:

1. Skriptinjektion:

Fügen Sie ein neues Skriptelement in den Seitenkontext ein. Dieses Skript kann die gewünschten Daten abrufen und an das Inhaltsskript zurückgeben.

2. Ereignis-Listener:

Verwenden Sie Ereignis-Listener, um Daten zwischen der Seite und dem Inhaltsskript zu übertragen. Das Inhaltsskript kann auf benutzerdefinierte Ereignisse warten, die vom Seitenskript mit den gewünschten Informationen ausgelöst werden.

Implementierungsbeispiel mit Skriptinjektion

Inhaltsskript (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 (Injected Script):

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

Überlegungen

  • Stellen Sie sicher, dass „script.js“ vorhanden ist zum Abschnitt „web_accessible_resources“ der Manifestdatei hinzugefügt.
  • Inhaltsskripte sollten den Großteil der Logik verarbeiten, da sie Zugriff auf zusätzliche Funktionen haben, die in den eingefügten Skripten nicht verfügbar sind.

Das obige ist der detaillierte Inhalt vonWie kann ich mit einer Chrome-Erweiterung auf globale Variablen in Gmail-Nachrichten zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn