首頁  >  文章  >  web前端  >  如何在 Chrome 擴充功能中從 Gmail 的內容腳本存取全域變數?

如何在 Chrome 擴充功能中從 Gmail 的內容腳本存取全域變數?

DDD
DDD原創
2024-10-25 16:46:02786瀏覽

How to Access Global Variables from Gmail's Content Script in a Chrome Extension?

存取Gmail 內容腳本中的全域變數

您尋求使用Chrome 擴充程式從活動Gmail 郵件網頁擷取GLOBALS 變數的解決方案.

內容腳本中的隔離

內容腳本在隔離的環境中執行,防止直接存取頁面全域變數。

消息傳遞技術

要克服這種隔離,請考慮消息傳遞技術:

注入腳本元素

將腳本元素注入頁面的DOM使用擴充URL:

<code class="javascript">var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head||document.documentElement).appendChild(s);</code>

建立事件監聽器

此外,建立用於資料交換的事件監聽器:

<code class="javascript">document.addEventListener('RW759_connectExtension', function(e) {
    alert(e.detail); // Transfer data, e.g., GLOBALS
});</code>

Script.js 注入

在「script.js」中(加入清單中的web_accessible_resources 中):

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

訊息傳遞的優點

訊息傳遞方法允許對網頁進行有限的擴展邏輯暴露並存取擴展的Chrome API 函數。

結論

透過實作這些技術,您可以有效地從 Chrome 擴充功能的內容腳本中存取全域變量,例如 GLOBALS。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn