HTML5窗口间同域和跨域的通信
一丶同域下的
1.如果我们要操作iframe里面的元素,首先获取到引入的页面的window。获取iframe里面的window对象。
var oIframe=getElementsByTagName('iframe')[0].contentWindow;
然后就可以对iframe里面的DOM元素进行操作了。
2.window.open()方法
window.open()方法会返回一个被打开页面的window对象。
var newWindow=window.open('xx.html','_blank');
通过newWindow对子页面的DOM元素进行操作。
二丶跨域下的
1.postMessage: 可以通过这个对象给另外一个窗口发送信息。接受窗口的window对象.postMessage()。
同样我们获取iframe下的window对象 var oIframe=getElementsByTagName('iframe')[0].contentWindow;然后发送信息 oIframe.postMessage('参数A','参数B');
参数A:表示发送的数据 参数B表示接受参数的域名(要带上协议)
最后当接受参数页面接受到Mesage信息时,触发事件。可以这样写
window.addEventListener("Message",function(ev){
//ev.data ------这个就是参数A,拿这个数做判断,从而来操作本野蛮窗口;
//ev.origin-----发送数据的源;
},false)
2 字页面操作父级页面
window---指的是当前窗口页面 parent---指的是包含当前页面的父级页面的window对象。 top-----指的是顶级window对象。
三丶
Ajax请求下的跨域解决办法
header('Access-Control-Allow-Origin:http://www.a.com'); //这是允许访问该资源的域 设置如下代码
IE下实现跨域
同域下,XMLHttpRequest
跨域下:oXDomainRequest
事件是onload事件