ホームページ >ウェブフロントエンド >jsチュートリアル >Chrome 拡張機能のコンテンツ スクリプト内で Gmail からグローバル変数にアクセスするにはどうすればよいですか?

Chrome 拡張機能のコンテンツ スクリプト内で Gmail からグローバル変数にアクセスするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-27 02:21:03930ブラウズ

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

Chrome 拡張機能コンテンツ スクリプトから Gmail のグローバル変数にアクセスする

概要

Chrome 拡張機能は次のとおりです。 Web ページにアクセスしてその機能を拡張できる強力なツール。ただし、拡張機能コンテンツ スクリプト内の Web ページからグローバル変数にアクセスするのは難しい場合があります。

問題:

拡張機能開発者は、Gmail の GLOBALS 変数にアクセスする際に問題が発生しています。コンテンツスクリプト。 jQuery.load() と開発者ツールのコンソールはどちらも必要なデータの取得に失敗し、エラー メッセージが表示されます。

解決策:

コンテンツ スクリプトはWeb ページから分離された隔離された環境。グローバル プロパティにアクセスするには、次のいずれかのアプローチを採用する必要があります。

  1. 新しい <script> を挿入します。 </script>
  2. イベント リスナーを利用して、コンテンツ スクリプトと Web ページの間でデータを受け渡します。

イベント リスナー メソッド

  1. contentscript.js内 (マニフェストの "run_at": "document_end"):

    <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>
  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」は、DOM 内の拡張 URL から読み込まれるため、マニフェスト ファイルの「web_accessible_resources」セクションに含まれています。
  • Web ページのロジックを最小限に抑え、ほとんどの操作をコンテンツ スクリプトで処理します。 Web ページからの干渉を防ぎ、特殊な機能にアクセスします。

以上がChrome 拡張機能のコンテンツ スクリプト内で Gmail からグローバル変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。