2016-09-20 5 views
0

私はコミュニティとアドオンの開発には初めてです。addon main.jsからpage-workerへの連絡

私は1ページの作業者からデータを取得してメインのアドオンに送信しようとしていますが、それ以上のデータを含めて他のページ作業者に送信しています。

私はページワーカーから最初の部分、つまりpostMessageを実行でき、メインアドオンで受信できます。今

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することが可能である:はい、それはmain.jsに1つのワーカーからのメッセージを受け取ると、それを送信するために非常に可能である

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

ご質問はありますか? – Basilevs

答えて

0

他の労働者。ここには2人の労働者がいます。今、ページング労働者からメッセージを受け取るとすぐに、他の労働者に送られます。

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}); 
}); 
      } 
}); 
関連する問題