我正在 node-webkit 应用程序中加载带有 iframe 的远程页面。 我想从网页的 node.js 应用程序运行一个函数。
在 app.js 中我有
var xxx = function(){ console.log('test'); }
以及 http://www.test.com/index.html我已经尝试过:
window.xxx();
xxx();
global.xxx();
但似乎没有任何效果。
我怎样才能做到这一点?
非常感谢
最佳答案
如果我理解正确的话,您想要访问在远程页面中定义的函数,并将该函数作为 iframe 包含在当前页面中,对吧?
我认为这里有两个单独的问题。
首先,您需要有一个 iframe 句柄,然后通过 iframe dom 元素的“contentWindow”属性访问该窗口的环境,即给定一个 id 为 foo
的 iframe,它指向一个带有名为 bar
的函数的页面,您可以这样做:
x = document.getElementById('foo');
x.bar();
这对于本地页面来说效果很好,但另一个问题是您可能会发现在 iframe 中运行远程页面并且仍然具有访问权限时会遇到一些困难。如果它是您控制下的页面,那可能会起作用,但有些页面不喜欢在 iframe 中运行,因此您必须在某种程度上进行沙箱处理,这可能会干扰您以这种方式访问它的能力。我已经有一段时间没有玩沙盒了,所以我不确定,但如果它是你控制的页面,你应该能够设置它,所以这不是问题。
关于javascript - node-webkit 从外部源运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25287151/