首页  >  文章  >  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