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

我正在构建扩展以与Gmail集成,并通过将gmail.js注入页面上下文来与Gmail集成,如下所示:https : //github.com/KartikTalwar/gmail-chrome-extension-boilerplate/blob/master /content.js


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


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



陪伴而非守候
浏览 420回答 2
2回答

温温酱

页面上下文脚本确实不能使用Chrome API。但是,它可以分派可由内容脚本捕获的DOM事件。还有就是文档中的例子在这里。除了使用之外window.postMessage,您还可以调度自定义事件。因此,您需要使内容脚本像页面上下文和背景之间的代理一样工作。遵循以下原则:// Content script//Listen for the eventwindow.addEventListener("PassToBackground", function(evt) {  chrome.runtime.sendMessage(evt.detail);}, false);// Page contextvar message = {/* whatever */};var event = new CustomEvent("PassToBackground", {detail: message});window.dispatchEvent(event);您可以对此进行概括以将答案传回。

慕无忌1623718

只是为了对此稍作扩展,在使用gmail.js时,为了将消息发送main.js到扩展页面,您需要使用内容脚本作为中介。该图有望说明。main.js | | window.postMessage(); | Vcontent.js //window.addEventListener("message", callback, false); | | chrome.runtime.sendMessage(); | Vbackground.js //chrome.runtime.onMessage.addListener(callback);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript