首页 >web前端 >js教程 >如何在 Chrome 扩展内容脚本中访问 Gmail 的全局变量?

如何在 Chrome 扩展内容脚本中访问 Gmail 的全局变量?

Barbara Streisand
Barbara Streisand原创
2024-10-27 02:21:03822浏览

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

从 Chrome 扩展程序内容脚本访问 Gmail 中的全局变量

简介

Chrome 扩展程序是可以访问和增强网页功能的强大工具。但是,从扩展程序内容脚本中的网页访问全局变量可能具有挑战性。

问题:

扩展程序开发人员在从 Gmail 访问 GLOBALS 变量时遇到困难内容脚本。 jQuery.load() 和开发者工具的控制台都无法检索所需的数据,从而导致错误消息。

解决方案:

内容脚本在与网页分离的隔离环境。要访问全局属性,必须采用以下方法之一:

  1. 注入新的 <script> </script>
  2. 利用事件监听器在内容脚本和网页之间传递数据。

事件监听器方法

  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”包含在清单文件的“web_accessible_resources”部分中,因为它是从 DOM 中的扩展 URL 加载的。
  • 最小化网页中的逻辑并处理内容脚本中的大多数操作防止网页干扰并访问专门功能。

以上是如何在 Chrome 扩展内容脚本中访问 Gmail 的全局变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn