首頁 > web前端 > js教程 > 如何從 Chrome 擴充功能存取 Gmail 中的全域變數?

如何從 Chrome 擴充功能存取 Gmail 中的全域變數?

DDD
發布: 2024-10-26 04:32:02
原創
377 人瀏覽過

How can I access global variables in Gmail from a Chrome extension?

從 Chrome 擴充功能存取 Gmail 中的全域變數

使用 Gmail 擴充程式通常需要從目前正在查看的郵件存取全域變數。但是,由於內容腳本的隔離環境,這可能會帶來挑戰。

要從 Gmail 網頁檢索 GLOBALS 變量,不能簡單地使用 jQuery.load()。相反,您必須注入新的 <script>元素或利用事件監聽器進行資料傳輸。 </script>

注入腳本元素

透過注入<script>元素,您可以將外部腳本載入到頁面的上下文中。然後,該腳本可以存取全域變數並將它們發送回擴充。例如,在您的內容腳本(contentscript.js) 中:</script>

<code class="javascript">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="javascript">setTimeout(function() {
    // Send `GLOBALS` to the extension
    document.dispatchEvent(new CustomEvent('RW759_connectExtension', {
        detail: GLOBALS
    }));
}, 0);</code>
登入後複製

使用事件監聽器

或者,您可以使用事件偵聽器在頁面和擴充功能之間傳遞資料。內容腳本將偵聽由注入腳本觸發的事件,如下所示:

<code class="javascript">// Event listener in contentscript.js
document.addEventListener('RW759_connectExtension', function(e) {
    // e.detail contains the transferred data (GLOBALS)
    alert(e.detail);
});</code>
登入後複製

請記住將 script.js 包含在清單檔案的 web_accessible_resources 部分中,以允許 Chrome 載入它。

最佳實踐

將內容腳本中的邏輯保持在最低限度,並專注於資料處理。這有助於保護您的擴充功能免受網頁程式碼中的修改或錯誤的影響,並使您可以存取內容腳本提供的增強功能。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板