Я не могу установить связь между моим дополнением и моим скриптом прикрепления. Событие присоединения для PageMod работает, однако оно не передает мое событие getElements
моему списку-геттеру. Как правильно использовать метод port.emit
? Спасибо!
index.js (аддон)
var pageMod = require('sdk/page-mod');
var data = require("sdk/self").data;
pageMod.PageMod({
include: "*.workflowy.com",
contentScriptFile: [data.url("jquery-1.11.3.min.js"), data.url("list-getter.js")],
onAttach: function(worker) {
// For some reasong the worker doesn't emit?
worker.port.emit("getElements");
worker.port.on("gotElements", function(times) {
function printValues(el) {
console.log(el);
}
times.forEach(printValues);
});
}
});
list-getter.js (contentScriptFile)
self.port.on("getElements", function() {
var timeRegex = /\bam|pm/g
var openLists = $('.project.open').find('.content');
var times = []
for (var i = 0; i < openLists.length; i++) {
if (openLists[i].innerHTML.match(timeRegex)) {
times.push(openLists[i].innerHTML)
}
}
self.port.emit("gotElements", times);
});
openLists
, скажем, на$('div').find('div')
, и вы увидите. У вас должна быть какая-то другая проблема, связанная с вашим регулярным выражением или, что более вероятно, с использованием неправильных селекторов. - person Sagi   schedule 09.09.2015