首頁 > web前端 > js教程 > 主體

如何使用 Chrome 擴充功能存取 Gmail 郵件中的全域變數?

DDD
發布: 2024-10-26 06:56:02
原創
543 人瀏覽過

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

使用 Chrome 擴充功能存取 Gmail 郵件中的全域變數

簡介

建立 Chrome 擴充功能可以讓您能夠修改網頁行為。其中一項需求是從頁面檢索全域變量,例如 Gmail 訊息中的 GLOBALS 變數。

問題

不幸的是,內容腳本在隔離環境中運行,無法直接存取頁面的視窗屬性,如 GLOBALS。 jQuery 的 .load() 函式無法檢索它,導致 ReferenceErrors。儘管能夠透過開發人員工具的控制台存取 GLOBALS,但還是會發生這種情況。

解決方案:跨上下文通訊

要彌合此通訊差距,您可以採用以下兩種方法之一:

1。腳本注入:

將新的腳本元素注入到頁面上下文中。該腳本可以檢索所需的資料並將其傳回內容腳本。

2.事件監聽器:

使用事件監聽器在頁面和內容腳本之間傳遞資料。內容腳本可以偵聽頁面腳本觸發的具有所需資訊的自訂事件。

使用腳本注入的實作範例

內容腳本(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(注入腳本):

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

注意事項

  • 確保「script.js」是新增到清單檔案的web_accessible_resources 部分。
  • 內容腳本應該處理大部分邏輯,因為它們可以存取注入腳本中不可用的其他功能。

以上是如何使用 Chrome 擴充功能存取 Gmail 郵件中的全域變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!