nw.js将元素ID传递给menuitem

时间:2016-10-05 05:09:04

标签: javascript html nw.js

我想通过javascript事件将元素id传递给新的menuitem。

<a id="element_1" class="drop-view-link" draggable="false" href="#" oncontextmenu="upShowMenu(event)" onclick="gui.Shell.openExternal(\''+d.url[i].href+'\')">http://stackoverflow.com/</a>

function upShowMenu(e){
e.preventDefault();
menu.popup(e.x, e.y);
//alert(e.target.id);
return false;
}

menu.append(
new gui.MenuItem(
    {
        label: 'Edit',
        click: function(ev){
        //alert(ev.id); ???
        }
    }
)
);

有可能吗? 如果可能的话我怎么样?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我说得对,那么在选择Edit之后,你想做一些与点击(目标)元素相关的事情。

在弹出上下文菜单之前,将contextMenu_element之类的变量设置为目标元素。

var contextMenu_element;

function upShowMenu(e) {
    e.preventDefault();
    contextMenu_element = e.target;
    menu.popup(e.x, e.y);
    return false;
}

然后你可以在菜单项的点击功能中使用这个变量:

menu.append(new gui.MenuItem({
    label: 'Edit',
    click: function() {
        console.log(contextMenu_element.getAttribute('id'));
    }
}));

这里我们通过调用getAttribute('id')来获取元素的ID。每次变量更改时,菜单项都会对当前所选元素执行特定操作。

您还可以使用menu的属性作为变量。将contextMenu_element替换为menu.element