关于jquery:从iFrame调用父JavaScript函数的HTML5方法-除了使用postMessage之外?还是PhoneGap应用的解决方案?

HTML5 way of invoking parent JavaScript function from iFrame — besides using postMessage? Or solution for PhoneGap apps?

我们知道跨窗口通信和HTML5中postMessage引入的跨域限制。

但是,我们想知道iFrame是否还有其他方法可以调用在其父窗口中定义的JavaScript函数。

我们发现postMessage在调用多个方法时有些笨拙,每个方法都需要多个参数。

如果不存在HTML5替代方案,则可以在PhoneGap中提供解决方案。

此处的PhoneGap详细信息:

我们将iFrame嵌入到PhoneGap " index.html "页面中。

在" index.html,"中,我们可以调用JavaScript函数或访问iFrame中的变量。

但是我们无法从iFrame调用" index.html "中的函数或访问变量。

关于PhoneGap的事情是否可以防止其反向工作?

谢谢!


postMessage的替代方法是URL主题标签更改。在JSON消息中编码更复杂的消息并编码/解码文本并不难:

{" methodName":['a','b',3]}

成为:#{" methodName":['a','b',3]}

如果您的另一端有一个脚本在监视哈希值更改并处理消息,那么您就很好了。

请注意,相同的技巧在支持postMessage的浏览器中也可以正常使用。一种流行的方法是使用postMessage并依靠散列更改。


parent.funcitonName(args);对我来说很好。但我不确定是否存在跨域问题,我将所有iFrame代码都放在一个域中。