Javascript Firefox插件声明函数和在内容脚本中的使用

Javascript Firefox插件声明函数和在内容脚本中的使用,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我正在尝试编写我的第一个firefox插件。主要的问题似乎是我对javascript也是新手。目前我有: require('sdk/page-mod').PageMod({ include: ["*"], contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);', attachTo: ["existing", "top"] }); (答案是thx。)

我正在尝试编写我的第一个firefox插件。主要的问题似乎是我对javascript也是新手。目前我有:

require('sdk/page-mod').PageMod({
    include: ["*"],
    contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
    attachTo: ["existing", "top"]
});
(答案是thx。) 现在我想使用声明的函数而不是匿名函数,但我无法让它工作:

require('sdk/page-mod').PageMod({
    include: ["*"],
    contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
    attachTo: ["existing", "top"]
});

getImgData function (e) {
    alert("blubber3");
}
第一个问题是,我只需添加函数“missing;before statement”就会出现语法错误。但是cfx没有告诉我错误的线路。(有没有什么有用的工具,可以通过良好的语法检查/内容辅助功能进行js编辑?) 因此,如何声明函数并在脚本中的其他地方使用ist。最后,函数需要获得click的目标并对其进行解析。 (我阅读了教程,但都使用匿名函数:-P)


thx提前

实现chrome脚本和内容脚本之间的分离非常重要。Chrome脚本是那些与Firefox具有相同安全权限的脚本,它们可以完全访问Firefox和您的计算机。内容脚本是那些以与网页相同的权限运行的脚本。他们可以随意摆弄网页,但在其他方面受到严格限制。为了维护安全。您不希望网页能够在扩展的内部代码中调用它想要的任何函数

您的主JS文件(包含
require('sdk/page mod')
)是一个chrome脚本。您注入的(
contentScript
)显然是一个内容脚本。它们无法像您这样通过直接函数调用进行通信

如果您的
getImgData
函数可以使用普通网页权限来完成,则可以将其定义移动到内容脚本中。如果需要额外权限,您必须让内容脚本通过
emit
on
功能与chrome脚本通信,如上面链接中所述


如果您打算继续制作内容脚本,我建议您让生活更轻松。

实现chrome脚本和内容脚本之间的分离非常重要。Chrome脚本是那些与Firefox具有相同安全权限的脚本,它们可以完全访问Firefox和您的计算机。内容脚本是那些以与网页相同的权限运行的脚本。他们可以随意摆弄网页,但在其他方面受到严格限制。为了维护安全。您不希望网页能够在扩展的内部代码中调用它想要的任何函数

您的主JS文件(包含
require('sdk/page mod')
)是一个chrome脚本。您注入的(
contentScript
)显然是一个内容脚本。它们无法像您这样通过直接函数调用进行通信

如果您的
getImgData
函数可以使用普通网页权限来完成,则可以将其定义移动到内容脚本中。如果需要额外权限,您必须让内容脚本通过
emit
on
功能与chrome脚本通信,如上面链接中所述

如果你打算继续制作内容脚本,我建议你让生活更轻松