[英]Communicate between Add-on SDK main add-on script and sdk/page-worker script
I'm trying to communicate between my main Add-on SDK script, index.js , and a script in a page-worker created with sdk/page-worker
. 我正在尝试在主要的附加SDK脚本index.js和使用
sdk/page-worker
创建的page-worker中的脚本之间进行通信。 Unfortunately, I am having problems. 不幸的是,我遇到了问题。
I am able to communicate from my main script to the page-worker: In the code below, I get an event from socket.on
- console.log('new post')
fires from the script in the page-worker. 我能够从主脚本与页面工作人员进行通信:在下面的代码中,我从
socket.on
获取了一个事件socket.on
console.log('new post')
从页面工作人员中的脚本触发。 However, the main add-on script does not see the message that is sent from the page-worker. 但是,主附加脚本看不到页面工作人员发送的消息。
HTML ( worker.html ): HTML( worker.html ):
<html lang="pl">
<head>
<meta charset="UTF-8">
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
<script type="text/javascript">
var socket = io.connect('http://192.168.0.21:8081');
socket.on('newPost', function(data) {
console.log("new post");
//to this everything works ok!!!!!!!!!!!!
self.port.emit('newPost', "");
});
</script>
</head>
<body>
</body>
</html>
to index.js file: 到index.js文件:
var buttons = require('sdk/ui/button/action');
var functions = require('./module.js');
var pageWorkers = require("sdk/page-worker");
var notifications = require('sdk/notifications');
var self = require("sdk/self");
functions.act.checkMsgsCount();
var pageWorker = pageWorkers.Page({
contentScriptWhen: "ready",
contentURL: self.data.url("worker.html")
});
pageWorker.port.on('newPost', function(data) {
console.log("sent newPost");
functions.act.newPostNotify();
});
buttons.ActionButton({
id: "main-bt",
label: "Start",
icon: {
"16" : "./icon-16.png",
"32" : "./icon-32.png",
"64" : "./icon-64.png"
},
onClick: functions.act.checkMsgsCount
});
In worker.html , I had to change self.port.emit
to: addon.port.emit
. 在worker.html中 ,我必须将
self.port.emit
更改为: addon.port.emit
。
Because I used a script in my HTML file within a <script>
tag, I have to communicate with the main add-on script through the addon
object. 因为我在HTML文件中的
<script>
标记内使用了脚本,所以我必须通过addon
对象与主附加脚本进行通信。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.