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并依靠散列更改。