Javascript 不同窗口中的节点Webkit启动功能

Javascript 不同窗口中的节点Webkit启动功能,javascript,node.js,node-webkit,Javascript,Node.js,Node Webkit,My node webkit应用程序由一个控制窗口和一个演示窗口组成 控制窗口收集数据,并最终通过窗口打开功能启动演示窗口 演示文稿窗口现在可以访问global变量中的一些信息 现在,我想通过创建SVG元素等来呈现该信息的图形表示 我已经有了一个javascript函数来实现这一点,但我需要某种方法从控制窗口启动该函数 我不能直接调用它,因为该函数必须访问另一个窗口的DOM 我曾尝试在另一个窗口的对象上使用eval函数,但这会使节点webkit崩溃,并显示消息 [18719:0522/20504

My node webkit应用程序由一个控制窗口和一个演示窗口组成

控制窗口收集数据,并最终通过
窗口打开功能启动演示窗口

演示文稿窗口现在可以访问
global
变量中的一些信息

现在,我想通过创建SVG元素等来呈现该信息的图形表示

我已经有了一个javascript函数来实现这一点,但我需要某种方法从控制窗口启动该函数

我不能直接调用它,因为该函数必须访问另一个窗口的DOM

我曾尝试在另一个窗口的对象上使用
eval
函数,但这会使节点webkit崩溃,并显示消息

[18719:0522/205047:ERROR:breakpad_linux.cc(1225)] crash dump file written to 
/tmp/chromium-renderer-minidump-788bf8d0c68301d5.dmp
最好的方法是什么


使用
setInterval
定期检查全局变量?

您可以使用Window.eval()注入和评估一段JS:


我发现一个非常有效的解决方案是将发布/订阅功能附加到
全局变量。到目前为止,我使用的设置是基于jQuery的,尽管它也可以在没有jQuery的情况下构建。首先,使用代码的变体对其进行初始化:

然后,可以使用以下模式发布和订阅windows事件之间的任意位置。一个窗口可以发布数据:

global.Message("someButtonClicked").publish(data);
然后另一个可以听

global.Message("someButtonClicked").subscribe(onButtonClicked);

function onButtonClicked(data) {
  console.log(data);
};
global.Message("someButtonClicked").subscribe(onButtonClicked);

function onButtonClicked(data) {
  console.log(data);
};