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

How i get the window object in node webkit after startup

本文关键字:webkit 获取 窗口 对象 节点 启动      更新时间:2023-09-26

我想在node-webkits节点主文件中启动后立即在窗口对象上注册事件。如果这样做

window.alert("foo")

一开始我得到的窗口没有定义。如果我等待几秒钟,它就可以工作了。

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

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

是的,有一个加载的事件发出,你可以挂接到它。

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

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

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

在节点主节点中.js

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

在索引中.html

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