Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击上下文菜单时调用预定义函数?_Javascript_Jquery_Function_Firefox_Firefox Addon - Fatal编程技术网

Javascript 如何在单击上下文菜单时调用预定义函数?

Javascript 如何在单击上下文菜单时调用预定义函数?,javascript,jquery,function,firefox,firefox-addon,Javascript,Jquery,Function,Firefox,Firefox Addon,我已经为我的插件在页面上添加了上下文菜单项。单击此上下文菜单项时,我希望执行一个预定义的函数,但我无法找到执行该函数的方法 这是上下文菜单的代码 var contextMenu = require("sdk/context-menu"); var menuItem = contextMenu.Item({ label: "Log Selection", contentScript: 'self.on("click", onClick);', }); function onClick(s

我已经为我的插件在页面上添加了上下文菜单项。单击此上下文菜单项时,我希望执行一个预定义的函数,但我无法找到执行该函数的方法

这是上下文菜单的代码

var contextMenu = require("sdk/context-menu");
var menuItem = contextMenu.Item({
  label: "Log Selection",
  contentScript: 'self.on("click", onClick);',
});

function onClick(state) {
//This function calls many other functions thus can not be defined locally
            console.log("onClick() called");
}

假设有一个
函数onClick()
,需要在单击上下文菜单时调用该函数。如何调用
onClick()
函数?

这应该适合您。从“我的扩展名”修改,该扩展名返回单击节点的信息

function unassignUSER(upChange) {
    console.log("onClick() called");
}

var contextMenu = require("sdk/context-menu");
var menuItem = contextMenu.Item({
    label: "Log Selection",
    contentScript: 'self.on("click", function (node) {' +
                 '  var upChange = "data"' +
                 '  self.postMessage(upChange);' +
                 '});',
    onMessage: function (upChange) {
        unassignUSER(upChange);
    }
});

oncommand
与菜单项一起使用,它更好地响应键盘。@Noitidart我没听清楚,请再解释一下。我自己也不太确定这是一个sdk特有的问题,我想。我只知道onCommand是首选的方法,但sdk开发人员必须在其余时间回复您:(