当前位置: 首页 > 面试题库 >

Gmail扩展程序,将sendMessage从页面上下文发送到后台

马弘益
2023-03-14
问题内容

我正在构建扩展以与Gmail集成,并通过将gmail.js注入页面上下文来与Gmail集成

这似乎是利用Google嵌入到页面中的某些全局变量的唯一明显方法。

所以现在,我需要回到扩展的某些功能。在正常情况下(通过内容脚本操作),我会向后台脚本发送一条消息,但是即使在选项卡本身的上下文中也可能吗?


问题答案:

页面上下文脚本确实不能使用Chrome API。 但是,它可以分派可由内容脚本捕获的DOM事件。

因此,您需要使内容脚本像页面上下文和背景之间的代理一样工作。遵循以下原则:

// Content script
//Listen for the event
window.addEventListener("PassToBackground", function(evt) {
  chrome.runtime.sendMessage(evt.detail);
}, false);

// Page context
var message = {/* whatever */};
var event = new CustomEvent("PassToBackground", {detail: message});
window.dispatchEvent(event);

您可以对此进行概括以将答案传回。



 类似资料:
  • 问题内容: 我知道这个问题已经在很多帖子中问过了,但老实说我不明白。我不熟悉JavaScript,Chrome扩展程序和其他所有功能,并且已经完成了此类课程。因此,我需要制作一个插件,该插件将使用跨域请求在任何给定页面上计算DOM对象。到目前为止,我已经可以使用Chrome Extension API来实现这一目标。现在的问题是,我需要在contentScript.js文件的popup.html页

  • 问题内容: 我正在创建一个扩展程序,它将从网站上下载mp3文件。我正在尝试通过创建带有指向mp3文件的链接的新标签来实现此目的,但是chrome会继续在播放器中打开它而不是下载它。有什么方法可以创建一个弹出窗口,要求用户“另存为”文件? 问题答案: 快进了3年,现在GoogleChrome提供了API(自Chrome31起)。 在清单中声明许可后,可以通过以下调用启动下载: 如果要在脚本中生成文件

  • 问题内容: 我有一个Chrome扩展程序。我需要从当前页面的HTML源进行分析。我在这里找到了各种带有背景页面和内容脚本的解决方案,但没有一个对我有帮助。这是我到目前为止所拥有的: manifest.json: background.html: content.js: 警报始终警报未定义。即使我在content.js文件中将回调函数更改为: 结果还是一样。我究竟做错了什么?也许我走错路了。我真正需

  • 我有这个发邮件的密码 此代码为除之外的任何邮件提供商发送邮件。 这可能是什么原因

  • 我正在做一个项目,该项目将有许多JavaFX应用程序,这些应用程序具有相似但又足够不同的功能,因此我创建了一个抽象基类来扩展Application以处理常见的功能并指示它们需要做什么,还创建了一系列具体的类来扩展这些功能。然而,当我试图跑的时候,我得到 应用程序构造函数java.lang.Reflect.InvocationTargetException位于java.base/jdk.intern

  • 扩展说明 对等网络节点组网器。 扩展接口 org.apache.dubbo.container.page.PageHandler 扩展配置 <dubbo:protocol page="xxx,yyy" /> <!-- 缺省值设置,当<dubbo:protocol>没有配置page属性时,使用此配置 --> <dubbo:provider page="xxx,yyy" /> 已知扩展 org.ap