global.broadcaster = {
_events: {},
publish: function (event, data) {
if (!this._events[event]) return; // no one is listening to this event
for (var i = 0; i < this._events[event].length; i++)
this._events[event][i](data);
},
subscribe: function (event, callback) {
if (!this._events[event]) this._events[event] = []; // new event
this._events[event].push(callback);
},
clear: function(event){
if (this._events[event]) delete this._events[event];
}
};
可以用
global
,global
是nodejs
的顶层对象,在nw.js
里global
是所有窗口共享的。我自己实现的简单窗口事件机制:
也可以用
nodejs
的事件:文档
Window.eval(frame, script);
在执行的窗口中执行执行的script脚本
当frame为null时,那么就在当前窗口执行或当前的iframe中执行
script为字符串显示的JS脚本,就如在浏览器环境中调用eval函数的用法。
nw.js 大半年都没有动静喽
看看electron吧~~~
在我们公司的项目中不同的的窗口都传递数据是通过,global.winManager.openOnce()方法
例如
第一个参数是窗口路由参数。第二个是窗口的属性,配置了窗口路由可以传一个空对象进去。第三个参数可以传递数据,包括函数,函数可以跨窗口执行。
如何在新窗口拿到数据?
在新窗口使用_winRefs可以获取到传来的对象。