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