【问题标题】:Create new function in contentScriptFile in Firefox extension在 Firefox 扩展的 contentScriptFile 中创建新函数
【发布时间】:2013-08-09 20:00:06
【问题描述】:

我正在开发一个 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 函数,但仍然存在相同的错误。

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

【问题讨论】:

    标签: javascript jquery firefox firefox-addon firefox-addon-sdk


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 2011-04-26
    • 2021-12-04
    • 2012-04-04
    相关资源
    最近更新 更多