如何从 Chrome 扩展程序访问 Gmail 中的全局变量?
从 Chrome 扩展程序访问 Gmail 中的全局变量
使用 Gmail 扩展程序通常需要从当前正在查看的邮件访问全局变量。但是,由于内容脚本的隔离环境,这可能会带来挑战。
要从 Gmail 网页检索 GLOBALS 变量,不能简单地使用 jQuery.load()。相反,您必须注入一个新的 <script>元素或利用事件监听器进行数据传输。</script>
注入脚本元素
通过注入<script>元素,您可以将外部脚本加载到页面的上下文中。然后,该脚本可以访问全局变量并将它们发送回扩展。例如,在您的内容脚本 (contentscript.js) 中:</script>
<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(); };</code>
注入的脚本 (script.js) 将包含:
<code class="javascript">setTimeout(function() { // Send `GLOBALS` to the extension document.dispatchEvent(new CustomEvent('RW759_connectExtension', { detail: GLOBALS })); }, 0);</code>
使用事件监听器
或者,您可以使用事件侦听器在页面和扩展程序之间传递数据。内容脚本将侦听由注入脚本触发的事件,如下所示:
<code class="javascript">// Event listener in contentscript.js document.addEventListener('RW759_connectExtension', function(e) { // e.detail contains the transferred data (GLOBALS) alert(e.detail); });</code>
请记住将 script.js 包含在清单文件的 web_accessible_resources 部分中,以允许 Chrome 加载它。
最佳实践
将内容脚本中的逻辑保持在最低限度,并专注于数据处理。这有助于保护您的扩展免受网页代码中的修改或错误的影响,并使您可以访问内容脚本提供的增强功能。
以上是如何从 Chrome 扩展程序访问 Gmail 中的全局变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文讨论了在浏览器中优化JavaScript性能的策略,重点是减少执行时间并最大程度地减少对页面负载速度的影响。

本文讨论了使用浏览器开发人员工具的有效JavaScript调试,专注于设置断点,使用控制台和分析性能。

本文说明了如何使用源地图通过将其映射回原始代码来调试JAVASCRIPT。它讨论了启用源地图,设置断点以及使用Chrome DevTools和WebPack之类的工具。

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

本教程将介绍如何使用 Chart.js 创建饼图、环形图和气泡图。此前,我们已学习了 Chart.js 的四种图表类型:折线图和条形图(教程二),以及雷达图和极地区域图(教程三)。 创建饼图和环形图 饼图和环形图非常适合展示某个整体被划分为不同部分的比例。例如,可以使用饼图展示野生动物园中雄狮、雌狮和幼狮的百分比,或不同候选人在选举中获得的投票百分比。 饼图仅适用于比较单个参数或数据集。需要注意的是,饼图无法绘制值为零的实体,因为饼图中扇形的角度取决于数据点的数值大小。这意味着任何占比为零的实体

掌握了入门级TypeScript教程后,您应该能够在支持TypeScript的IDE中编写自己的代码,并将其编译成JavaScript。本教程将深入探讨TypeScript中各种数据类型。 JavaScript拥有七种数据类型:Null、Undefined、Boolean、Number、String、Symbol(ES6引入)和Object。TypeScript在此基础上定义了更多类型,本教程将详细介绍所有这些类型。 Null数据类型 与JavaScript一样,TypeScript中的null
