在Firefox扩展中的contentScriptFile中创建新函数

Create new function in contentScriptFile in Firefox extension

本文关键字:函数 新函数 contentScriptFile Firefox 扩展 创建      更新时间:2023-09-26

我正在开发一个firefox扩展,在myPanel的contentScriptFile中有这些函数:

...
function myFun(param){
    console.log("myFun with "+param)
}
self.port.on('myTrigger',function(value){
    $("#myFavDiv").append("<a onclick='myFun(''"+value+"'')'> click me!</a>")
});
...

我包括脚本文件,如(在main.js中):

myPanel = panel.Panel({
  width: 400,
  height: 200,
  contentURL: self.data.url("panel.html"),
  contentScriptFile: [self.data.url("jquery-1.10.2.min.js") , self.data.url("mScript.js")]
});

一切都很好,只是问题是onclick方法,它在div#myFavDiv 中动态添加了锚标签

单击锚点时引发错误:

Timestamp: 8/10/2013 1:24:48 AM
Error: ReferenceError: myFun is not defined

我试图在main.js中编写这个myFun函数,但仍然存在相同的错误。

有什么想法/解决方案吗?

我认为内容脚本是从HTML中沙盒出来的,所以当锚被注入HTML时,它不知道myFun是什么。在内容脚本中,你可以将处理程序绑定在那里,使其保持在同一环境中。

self.port.on('myTrigger',function(value){
    $("#myFavDiv").append("<a onclick='myFun(''"+value+"'')'> click me!</a>")
    $("#myFaDiv a").click(myFun);
});