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事件

     

posted @ 2016-08-16 21:10  Magic-ksf  阅读(1174)  评论(0编辑  收藏  举报