如何在启动后获取节点webkit中的窗口对象

时间:2014-11-27 06:57:01

标签: javascript node.js node-webkit

我想在node-webkits node-main文件中启动后立即在窗口对象上注册事件。如果

window.alert("foo")

在开头我得到的窗口未定义。如果我等了几秒钟就可以了。

setTimeout(function(){
  window.alert("foo")
},2000) 

是否有其他事件(可能是进程成员)我可以收听,以获得窗口对象可用的通知?

2 个答案:

答案 0 :(得分:1)

是的,有一个loaded事件发出,您可以挂钩。

var gui = require('nw.gui');
var win = gui.Window.get();
win.on('loaded', function() {
    // do stuff 
});

答案 1 :(得分:0)

全局变量process可以从HTML页面中的脚本以及node-main和bg-script文件中获得。

process也是EventEmitter的一个实例。因此,您可以在节点主文件中注册和监视事件,并在加载时从HTML文件中触发事件。

在node-main.js

process.on('foo-event', function (win) {
    win.alert('foo');
});

在index.html中

<!DOCTYPE html>
<html>
    <head>
        <script>
            process.emit('foo-event', window);
        </script>
    </head>
    <body></body>
</html>