Hallo
ich hoffe hier kann mir jemand weiterhelfen. Leider ist mein Englisch nicht ganz so gut, so daß ich die Doku nicht komplett nachvollziehen kann.
Ich versuche mich an einem Plugin für den Firefox mit dem SDK und verstehe nicht wie das mit dem Emit gemacht wird.
Ich möchte aus dem Main.js Daten an mein ContentScript senden und von da Daten wieder zurück. Allerdings soll das nicht beim Laden geschehen sondern erst später.
aktuell habe ich folgenden Code:
main.js:
Code
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "*.wwww.com",
contentScriptFile: self.data.url("MyScript.js"),
});
worker.port.on("FinishedParse", FinishedParse(doc));
var button = buttons.ActionButton({
id: "mozilla-link",
label: "Sammel Erfolge",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
self.port.on("FinishedParse", FinishedParse(text));
function handleClick(state)
{
var Text="xxxxx";
pageMod.worker.port.emit("ParseData", Text);
}
function FinishedParse(doc)
{
console.log("Finished parse received " + doc);
}
Alles anzeigen
und MyScript.js:
Code
var self = require("sdk/self");
self.port.on("ParseData", ParseData(html));
function ParseData(html)
{
var doc = "ffffff";
...
self.port.emit("FinishedParse", doc);
};
Alles anzeigen
Mit diesem Sourcecode bekomme ich aber nur Fehlermeldungen, daß er zb den worker nicht kennt. Bei dem Bsp auf der Mozillaseite wird dieser über eine Funktion übergeben, aber wo bekomme ich den her, wenn ich das nicht beim Start sondern erst später aufrufen möchte?