html中iframe同域跨域通讯方式
在项目开发中我们经常使用iframe,那么iframe之间如何通讯,比如父子,兄弟inframe之间如何通讯,主要分同域与跨域二中场景
一、同域
在同域的情况下,子iframe页面可以很方便地直接调用父页面定义的js方法:<iframe id="bfwframe" name="bfwframe" src="./childiframe.html"></iframe> <!-- 或者 --> <iframe id="bfwframe" name="bfwframe" src="a.com/childiframe.html"></iframe> <script> function sayHi () { alert('hi bfw!'); } </script>那么childiframe.html中调用parent中的js方法
window.parent.sayHi(); //或者 top.sayHi();当 <iframe> 的链接与父页面不同域时,则子页面的 iframe 不能调用父页面定义的方法,会报错;
二、跨域
那么跨域的情况下可以使用postmessageWindow.postMessage 是 HTML5 提供的一个跨域解决方案。
window.postMessage() 方法可以安全地实现跨源通信。通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为http...
点击查看剩余70%
网友评论0