1

我正在开发一个 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>")
});
...

我包括像(in 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

任何想法/解决方案?

4

1 回答 1

2

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

self.port.on('myTrigger',function(value){
    $("#myFavDiv").append("<a onclick='myFun(\'"+value+"\')'> click me!</a>")
    $("#myFaDiv a").click(myFun);
});
于 2013-08-09T21:12:32.007 回答