不同frame之间传值的方法
2017-04-22 本文已影响139人
星月西
1.不同frame是同源的
- 不同框架之间能够通过iframe元素的contentWindow属性,获取到彼此的window对象,就能通过window.document访问各自的属性和对象。
function test(){
//获取子框架的window对象
var win=document.getElementById('frame').contentWindow;
var text=win.document.getElementById('title').innerText;
document.getElementById('show').innerText=text;
}
- 同源的不同框架共用同一个本地存储localStorage,可以通过监听storage事件(webkit不支持此事件),来进行通信。
2.不同frame是不同源的
-
不同框架可以获取到彼此的window对象,但是不同源的话就不能使用获取到window对象的属性和方法,此时可以通过设置为同样的document.domain,就能访问相应的属性和方法。
document.domain='example.com';
-
通过HTML5中的window.postMessage来跨域传送数据,接收消息的框架监听message事件,消息内容存储在事件对象的data属性中。