nw.js node-webkit系列(7)Native UI API Menu的使用

本节主要介绍Native UI API 中菜单栏的使用,菜单栏分为两类:一类是普通菜单栏,另一类是上下文菜单栏(右键弹出)。

(一)例子



	
		menuDemo
		
	
	
		

menu api 测试


(二)函数参考

new Menu([option])
创建一个菜单。如果你不添加参数,将作为一个普通的菜单按钮创建,如果要想作为窗口菜单创建,则需要添加参入如下:
new Menu({
	type: 'menubar'
});

Menu.items
获取该Menu下所有的MenuItem对象,返回结果为数组。例子如下:
for (var i = 0; i < menu.items.length; ++i) {
    var element = document.createElement('div');
    element.appendChild(document.createTextNode(menu.items[i].label));
    document.body.appendChild(element);
}

Menu.append(MenuItem item)
向当前菜单中添加一个menuitem对象,该对象在整个menuitem集合的尾部。

Menu.insert(MenuItem item, int i)
在menuitem集合的指定位置插入一个menuitem对象。

Menu.remove(MenuItem item)
从menuitem集合中移除一个menuitem对象。

Menu.removeAt(int i)
删除menuitem集合中指定索引位置的menuitem对象。

Menu.popup(int x, int y)
在当前窗口的指定位置弹窗菜单。例子如下:
document.body.addEventListener('contextmenu', function(ev) { 
  ev.preventDefault();
  menu.popup(ev.x, ev.y);
  return false;
});

MenuItem.click
获取或设置一个MenuItem的点击操作
menu.append(menuitem);
menuitem.click = function() { 
    console.log('clicked');
};
console.log(menu.items[0].click);

(三)创建上下文菜单

创建上下文菜单,需要在页面监听contextmenu 事件,然后控制弹出菜单。
document.body.addEventListener('contextmenu', function (ev) {
    ev.preventDefault();
    menu.popup(10, 10);
    return false;
});

你可能感兴趣的:(前端集合,nw.js桌面应用开发)