【问题标题】:How to call the a predefined function on click of a context menu?如何在单击上下文菜单时调用预定义函数?
【发布时间】:2015-08-07 06:26:55
【问题描述】:

我在我的插件页面上添加了一个上下文菜单项。单击此上下文菜单项时,我希望执行我的预定义功能之一,但无法找到解决方法

这是上下文菜单的代码

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");
}

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

【问题讨论】:

  • oncommand 与菜单项一起使用,它对键盘的响应也更好。
  • @Noitidart 我没听明白,请多解释一下。
  • 我自己对此不太确定,我认为这是一个 sdk 特定的问题。我只知道 onCommand 是首选使用的方法,但是 sdk 开发人员必须在其余部分回复您:(

标签: javascript jquery function firefox firefox-addon


【解决方案1】:

这应该适合你。从我的扩展中修改,返回有关单击节点的信息。

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);
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多