node-webkit从外部源运行函数

时间:2014-08-13 13:09:49

标签: javascript node.js node-webkit

我在node-webkit app中加载了一个带iframe的远程页面。 我想从网页上的node.js应用程序运行一个函数。

在app.js我有

var xxx = function(){ console.log('test'); }

并在http://www.test.com/index.html我尝试过:

window.xxx();
xxx();
global.xxx();

但似乎没有任何效果。

我该怎么做?

非常感谢

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您想要访问在当前页面中作为iframe包含的远程页面中定义的功能,对吗?

我认为这里有两个独立的问题。

首先,你需要在iframe上有一个句柄,然后通过iframe dom元素的'contentWindow'属性访问该窗口的环境,即给定一个id为foo的iframe,指向一个页面一个名为bar的函数,你可以这样做:

x = document.getElementById('foo');
x.bar();

对于本地页面,这对我来说很好用,但另一个问题是,在iframe中运行远程页面并且仍然可以访问时,您可能会遇到一些困难。如果它是您控制的页面,那可能会有效,但有些页面不喜欢在iframe中运行,因此您必须在某种程度上使用沙箱,这可能会影响您以这种方式访问​​它的能力。我玩沙盒已经有一段时间了,所以我不确定,但如果它是你控制的页面,你应该能够设置它,这不是问题。