我可以使用window.postMessage方法从iframe中的网页通信到包括该iframe的UIWebView吗
Can I use the window.postMessage method to communicate from a webpage in an iframe out to the UIWebView that includes that iframe?
我经常使用window.postMessage
和"message"事件侦听器在父网页与其子IFRAME
元素中的网页之间跨域通信。我想知道UIWebView及其子IFRAME
元素中的网页是否可能实现这一点。
是的,这确实是可能的。几天前,我在自己的应用程序中对此进行了测试,并取得了成功。
在我想与之交流的网页上,我只是在窗口中添加了一个"消息"事件侦听器
在网页上收听UIWebView消息
window.addEventListener("message", onmessage, false);
window.onmessage = function(e){
// e.data contains message
// e.origin will equal NULL as theres no domain in UIWebView
}
UIWebView只需要抓取嵌入的iFrame对象的窗口并在其上调用postMessage:
iFrameObject.contentWindow.postMessage("message", http://webpageDomain...);
相反,UIWebView中的html实现需要监听消息,就像上面的代码一样。这次e.origin将成为网页的域名。
网页只需要用*作为targetDomain调用以下内容,因为UIWebView没有。
parent.postMessage("message", *);
相关文章:
- 如何在两个不同的iframe HTML之间进行通信
- 从子级(iframe)到父级的跨域通信不起作用
- 允许 My(!) 站点与 Iframe 通信
- 我可以使用window.postMessage方法从iframe中的网页通信到包括该iframe的UIWebView吗
- 使用在iFrame中运行的Javascript进行通信
- 与 iFrame 内容通信
- 从父 iframe 到子 iframe 的跨源通信
- 跨域上的 iframe 与窗口通信
- iFrame与按钮通信
- youtube javascript api如何在没有同源策略限制的情况下在iframe中与嵌入播放器通信
- 如何在iframe和父站点之间进行通信
- Cordova跨域文件://iframe contentwindow通信
- 通过ie8中的javascript在iframe和它所属的页面之间进行通信
- 使用easyXDM在父文档和从不同域(amazon)加载的子iframe之间进行通信
- 如何使用postMessage从嵌套的iframe到根文档进行通信
- 跨域Iframe通信
- Javascript跨域通信到iframe的父窗口
- IE阻止同一域iframe通信.(文档.域设置在所有框架上)
- 两个iframe正在通信:SecurityError
- iframe和父窗口之间的通信