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

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

Barbara Streisand
Barbara Streisand原創
2024-10-27 02:21:03815瀏覽

How Can I Access Global Variables from Gmail Within a Chrome Extension Content Script?

從Chrome 擴充程式內容腳本存取Gmail 中的全域變數

簡介

簡介

問題:

擴充功能開發人員在從 Gmail 存取 GLOBALS 變數時遇到困難內容腳本。 jQuery.load() 和開發者工具的控制台都無法檢索所需的數據,從而導致錯誤訊息。

解決方案:

    內容腳本在與網頁分離的隔離環境。要存取全域屬性,必須採用以下方法之一:
  1. 注入新的 <script> </script>
利用事件監聽器在內容腳本和網頁之間傳遞資料。

事件監聽器方法
  1. contentscript.js
    <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();
    };
    
    // Event listener
    document.addEventListener('RW759_connectExtension', function(e) {
        // e.detail contains the transferred data.
        alert(e.detail);
    });</code>
    中(清單的「run_at」:「 document_end」):
  2. script.js
    <code class="javascript">setTimeout(function() {
        // Send GLOBALS variable from Gmail to the extension.
        document.dispatchEvent(new CustomEvent('RW759_connectExtension', {
            detail: GLOBALS
        }));
    }, 0);</code>
    ,放置在擴充目錄下,注入到頁中:

注意事項:
  • 確保「script.js」包含在清單檔案的「web_accessible_resources」部分中,因為它是從DOM 中的擴充URL加載的。
最小化網頁中的邏輯並處理內容腳本中的大多數操作防止網頁幹擾並存取專門功能。

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

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