【发布时间】:2020-06-24 00:37:29
【问题描述】:
我正在使用 node webkit v0.45,并且需要使用动态参数打开一个新窗口(具有预先确定的 html 布局)。
我能找到的唯一文档建议使用 on "loaded" 事件将数据发送到新窗口,然后处理在新窗口 html 中使用 on "data" 接收的数据,如下所示:
主窗口:
var ngui = require('nw.gui');
var newWindow = ngui.Window.open('newwindow.html', {
width: 1120,
height: 360
})
newWindow.on ('loaded', function(){
var data = {msg: "test"};
newWindow.emit("data", data);
});
新窗口:
var gui = require('nw.gui');
var win = gui.Window.get();
win.on("data", function(data) {
console.log(data.msg);
});
然而,在 v0.13 之后,这似乎已被弃用,并且 Window 类不再从 EventEmitter 继承。还有其他的带参数打开窗口的选项吗?
***更新***
打开新窗口时,以下代码将起作用:
var param = 'param';
ngui.Window.open('newWindow.html', {
width: 1120,
height: 360,
}, function(newWindow) {
pageWindow.on('loaded', () => {
newWindow.window.param = param;
});
});
在newWindow.html中:
<script>
function getParam(){
if (!window.param){
setTimeout(function(){
getParam();
},50);
} else {
console.log("Successfully loaded param: '" + window.param + "'");
}
}
getParam();
</script>
【问题讨论】:
标签: node.js events node-webkit emit