2016-09-20 4 views
0

Ich bin neu in der Community und Addons zu entwickeln.kommunizieren von Addon main.js zu page-worker

Ich versuche, einige Daten von 1-Seite-Arbeiter zu holen und es an das Haupt-Addon zu senden, dann fügen Sie einige weitere Daten hinzu und senden Sie es dann an einen anderen Seitenarbeiter.

Ich bin in der Lage, den ersten Teil zu tun, d. H. PostMessage von page-worker und erhalten am Haupt-Addon. Jetzt

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); 
}); 

ist es möglich, von hier zu postmessage anderen Seite Arbeiter wie:

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

Was ist Ihre Frage? – Basilevs

Antwort

0

Ja, es ist sehr viel möglich Nachricht von einem Arbeiter auf main.js zu empfangen und senden es an anderer Arbeiter. Hier haben wir zwei Arbeiter. Sobald die Nachricht von pagemod worker empfangen wurde, wird sie an einen anderen Arbeiter gesendet.

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}); 
}); 
      } 
}); 
Verwandte Themen