bra*_*ert 3 javascript gmail google-chrome google-chrome-extension
我正在构建一个扩展程序,通过将gmail.js注入页面上下文,与Gmail集成并与Gmail集成,如下所示:https://github.com/KartikTalwar/gmail-chrome-extension-boilerplate/blob/master /content.js
这似乎是利用Google嵌入页面的一些全局变量的唯一明显方法.
所以现在,我需要回到扩展的一些功能.在正常情况下(从内容脚本操作),我会向后台脚本发送一条消息,但是甚至可以从选项卡本身的上下文中发送消息吗?
页面上下文脚本确实不能使用Chrome API.
但是,它可以调度内容脚本可以捕获的DOM事件.
还有就是文档中的例子在这里.除了使用window.postMessage
,您还可以发送自定义事件.
因此,您需要使内容脚本像页面上下文和后台之间的代理一样工作.这些方面的东西:
// 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);
Run Code Online (Sandbox Code Playgroud)
您可以概括这一点以传回答案.
小智 8
稍微扩展一下,当使用 gmail.js 时,为了从main.js
您的扩展页面获取消息,您需要使用您的内容脚本作为中介。这张图有望说明。
main.js
|
| window.postMessage();
|
V
content.js //window.addEventListener("message", callback, false);
|
| chrome.runtime.sendMessage();
|
V
background.js //chrome.runtime.onMessage.addListener(callback);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2208 次 |
最近记录: |