我正在开发一个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
我试图在
myFun
中编写此main.js
函数,仍然存在相同的错误。任何想法/解决方案?
最佳答案
我认为内容脚本是从HTML沙盒中提取的,因此当将锚点注入HTML时,它不知道myFun
是什么。在您的内容脚本中,您可以在此处绑定处理程序,将其保持在同一环境中。
self.port.on('myTrigger',function(value){
$("#myFavDiv").append("<a onclick='myFun(\'"+value+"\')'> click me!</a>")
$("#myFaDiv a").click(myFun);
});