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.
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.
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.
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>
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!