PageMod的Firefox插件附加事件没有发出事件
Firefox Addon Attach event for PageMod is not emitting events
我无法在我的插件和我的附加脚本之间进行通信。PageMod的attach事件可以工作,但是它不会向list-getter发送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);
});
我犯了一个不可思议的错误。确保将您想要由数据对象加载的任何内容放在data文件夹中。我有两份,改错了一份。谢谢。
index.js
var pageMod = require('sdk/page-mod');
var data = require("sdk/self").data;
pageMod.PageMod({
include: "*.workflowy.com",
contentScriptFile: data.url("list-getter.js"),
onAttach: function(worker) {
worker.port.emit("getElements");
worker.port.on("gotElement", function(times) {
function printValues(el) {
console.log(el);
}
times.forEach(printValues);
});
}
});
list-getter.js
self.port.on("getElements", function(openProject) {
var times = []
var timeRegex = /'b([1-9]pm|[1-9]am|1[0-2]am|1[0-2]pm)/g;
var openLists = document.querySelectorAll('.content');
for (var i = 0; i < openLists.length; i++) {
if (openLists[i].innerHTML != "") {
if (openLists[i].innerHTML.match(timeRegex)) {
times.push(openLists[i].innerHTML);
}
}
}
self.port.emit("gotElement", times);
)};
相关文章:
- 如何准确地找出引发事件的原因
- addEvent 给出空事件对象
- 单击Jquery中弹出的事件
- Angular JS,把json放到ng重复出一个事件失败
- 使用 custon 队列按顺序抛出 Jquery 事件
- 在弹出图像事件上绑定和取消绑定鼠标滚轮 - JQuery
- jQuery点击事件/事件冒泡问题,当尝试突出显示一个元素并同时选中一个复选框
- 谷歌Chrome扩展弹出打开事件和焦点,模糊事件
- PhantomJS没有为iframe抛出onload事件
- 如何使用angular js在指令中给出click事件
- 改变我的弹出q/答案事件从悬停到点击
- 服务器发送事件-事件流-触发一个PHP服务器端事件
- 窗口.打开请求从浏览器弹出提交事件的许可
- var evt = (evt)是什么意思?Evt:(事件)?事件:null);
- 服务器用node.js (express)发送事件/事件源
- 找出哪个事件/观察者正在改变元素
- 我能在常规JS中监听AngularJS抛出的事件吗(在angular之外?)
- 找出哪个事件正在元素上触发
- 弹出窗口与 2 个 HTML 文件如何获取弹出关闭事件
- 当store在flux中发出任何事件时,何时以及如何进行重新渲染