在受信任的页面内容和加载项之间传递消息
Message passing between trusted page content and addon
我无法在受信任的页面工作脚本和插件之间传递消息。
main.js:
var pageWorkers = require("sdk/page-worker");
var self = require("sdk/self");
// Create a page worker that loads Wikipedia:
pageWorkers.Page({
contentURL: self.data.url("html/worker.html"),
onAttach: function(worker) {
console.log("within onAttach");
worker.port.on("message", function() {
console.log("Message received");
});
worker.port.on("message", function(message) {
console.log("Message received1");
});
},
onReady: function(worker) {
console.log("within onReady");
worker.port.on("message", function() {
console.log("Message received");
});
}
});
worker.html:
<html>
<head>
<script src="../js/worker.js"></script>
</head>
<body>
</body>
</html>
worker.js:
console.log("trying to emit message");
addon.port.emit("message");
addon.port.emit("message", "value");
console.log("tried to emit message");
在main.js中,如果我在pageWorkers.Page()
调用之外尝试以下操作:
pageWorkers.port.on("message", function() {
console.log("Message received");
});
我得到以下异常:
Message: TypeError: pageWorkers.port is undefined
如有任何帮助,我们将不胜感激。我尝试过使用postMessages,但没有成功。如果被要求,我也可以添加该代码。
页面工作程序,与选项卡附加不同,与pageMods不同,没有onAttach
函数。它们也没有onReady
,因为当HTML准备好时,contentScriptFile会自动附加。
main.js
var worker = pageWorkers.Page({
contentURL: self.data.url("html/worker.html")
});
worker.port.on("message", function() {
console.log("Message received");
});
//If your events have the same name then they're the same event,
//irrespective of arguments passed
worker.port.on("message1", function(message) {
console.log("Message received1");
});
worker.js
console.log("trying to emit message");
addon.port.emit("message");
console.log("trying to emit message1");
addon.port.emit("message1", "value");
相关文章:
- 列出IE加载项的Javascript
- 在OfficeJS Office加载项中标识活动的Office应用程序
- Office加载项don't与“;asp:”;
- 使用Microsoft Office.js加载项进行自动身份验证
- 在加载之前从内容脚本向加载项发出消息
- Firefox加载项:从选项卡获取文档
- Outlook加载项使用Javascript将附件保存到磁盘
- 使用Firefox加载项修改网站
- 用一个加载项绘制图像阵列
- Firefox加载项验证提供了document.write&innerHTML错误
- Mozilla Firefox加载项将不会启动
- 无法通过Microsoft Office JavaScript加载项对Trello进行身份验证
- Excel 2016 加载项如何更改列格式
- 如何使用 Office 365 加载项(以前称为 Office 相关应用程序)将功能区和用户可定义的函数添加到 Exce
- 从 Javascript 或 C# 中的 Office 365 Outlook 加载项创建.msg文件
- 检测 Office 加载项主机而不包括 office.js
- 如何在 Office 365 加载项中启用允许从沙盒属性顶部导航
- AngularJS中ngRepeat集合中的延迟加载项
- 使用办公加载项清除 Excel 2013 中的工作表
- 在受信任的页面内容和加载项之间传递消息