2016-09-20 7 views
0

Я новичок в сообществе и разработке аддонов.общаться от addon main.js к странице-работнику

Я пытаюсь получить некоторые данные от 1-страничного работника и отправить его в главный аддон, а затем добавить к нему еще несколько данных, а затем отправить их другому работнику страницы.

Я могу сделать первую часть i.e postMessage от page-worker и получить в главном аддоне.

var self = require("sdk/self"); 
var pageWorker = require("sdk/page-worker"); 
var getdata = pageWorker.Page({ 
    contentScript: "self.postMessage(document.body.innerHTML);", 
    contentURL: "http://itildemo.servicedeskplus.com/sdpapi/request?INPUT_DATA={%22operation%22:{%22details%22:{%22status%22:%22open%22,%22from%22:0,%22limit%22:500,%22filterby%22:%22Unassigned_System%22}}}&OPERATION_NAME=GET_REQUESTS&TECHNICIAN_KEY=D357605B-E4B5-4892-A7C2-62CA556CB5A8&format=json" (http://itildemo.servicedeskplus.com/sdpapi/request?INPUT_DATA={%22operation%22:{%22details%22:{%22status%22:%22open%22,%22from%22:0,%22limit%22:500,%22filterby%22:%22Unassigned_System%22}}}&OPERATION_NAME=GET_REQUESTS&TECHNICIAN_KEY=D357605B-E4B5-4892-A7C2-62CA556CB5A8&format=json%27) , 
    contentScriptWhen: "ready" 
}); 
getdata.on("message", function(e) { 
    console.log(e); 
}); 

Теперь это можно PostMessage отсюда на другую страницу-работник как:

getdata.on("message",function(e){ 
    insertdata.postMessage(e); 
}); 
var insertdata = pageWorker.Page({ 
    onMessage: function(e){ 
    console.log(e); 
    } 
}); 
+1

В чем Ваш вопрос? – Basilevs

ответ

0

Да, это очень возможно, чтобы получать сообщение от одного работника на main.js и отправить его другой работник. Здесь у нас есть два рабочих. Теперь, как только сообщение, полученное от работника pagemod, отправляется другому работнику.

var wsWorker = require('sdk/page-worker').Page({ 
    contentURL: "websocket.html", 
    contentScriptFile : ["websocket.js"] 
}); 


var pageMod = require("sdk/page-mod").PageMod({ 
    include: ['*'], 
    contentStyleFile: [self.data.url('fillStyle.css')], 
    contentScriptFile: ["content.js"], 
    contentScriptWhen: "start", 
    attachTo: ["top", "frame", "existing"], 
    onError : function(error) { 
     console.log('ERROR Ocurred :- ',error); 
    }, 
    onAttach: function(worker) { 
       worker.port.on("worker_msg",function(msg_of_other_worker){ 
    //send this message to another worker. 
    wsWorker.port.emit("some_action",{tabUrl : msg_of_other_worker}); 
}); 
      } 
});