HTML5从iFrame调用父JavaScript函数的方法 – 除了使用postMessage之外?或PhoneGap应用程序的解决方案?

我们知道对窗口间通信施加的跨域限制以及在HTML5中引入postMessage.

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

我们发现postMessage对于调用多个方法有点笨拙,每个方法都需要多个参数.

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

PhoneGap详细信息:

我们在PhoneGap“index.html”页面中嵌入了一个iFrame.

从“index.html”,我们可以在iFrame中调用JavaScript函数或访问变量.

但是我们不能从iFrame调用“index.html”中的函数或访问变量.

有没有关于PhoneGap的东西阻止它反向工作?

谢谢!

解决方法:

postMessage的替代方法是URL标签更改.在JSON消息中编码更复杂的消息并对文本进行编码/解码并不困难:

{“methodName”:[‘a’,’b’,3]}

成为:#{“methodName”:[‘a’,’b’,3]}

如果你在另一边有一个脚本正在观察哈希变化和处理消息,你就可以了.

请注意,在支持它的浏览器中,相同的技巧可以与postMessage一起使用.一种流行的方法是使用postMessage并回退散列更改.

上一篇:javascript – 如何在iframe中使用postmessage将用户重定向到主文档上的页面


下一篇:Redhat更换yum源