我在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();
但似乎没有任何效果。
我该怎么做?
非常感谢
答案 0 :(得分:1)
如果我理解正确,您想要访问在当前页面中作为iframe包含的远程页面中定义的功能,对吗?
我认为这里有两个独立的问题。
首先,你需要在iframe上有一个句柄,然后通过iframe dom元素的'contentWindow'属性访问该窗口的环境,即给定一个id为foo
的iframe,指向一个页面一个名为bar
的函数,你可以这样做:
x = document.getElementById('foo');
x.bar();
对于本地页面,这对我来说很好用,但另一个问题是,在iframe中运行远程页面并且仍然可以访问时,您可能会遇到一些困难。如果它是您控制的页面,那可能会有效,但有些页面不喜欢在iframe中运行,因此您必须在某种程度上使用沙箱,这可能会影响您以这种方式访问它的能力。我玩沙盒已经有一段时间了,所以我不确定,但如果它是你控制的页面,你应该能够设置它,这不是问题。