HTML5 学习笔记四(跨文档消息通信)
一、同域
父→子 方法:
⒈iframe对象:父页面的iframe中的子页面,父的iframe对象的contentWindow即为子window对象。
⒉父通过window.open()方法,其方法接收子url作为参数,方法返回值为子window对象。
子→父 方法:
⒈iframe:在父页面的iframe中,子页面的parent(window.parent)对象为父window.
⒉使用open()方法的父子,其子页面的window.openner即为父window对象。
二、跨域
在父窗口中的子window对象使用postMessage(n1,n2),n1为数据,n2为域名(必须带协议)。
子窗口通过添加message事件接收福请求,其中事件ev有origin为父域n2,data为父数据n1两属性。
三、跨域ajax:
除了使用Jsonp外,ajax可跨域请求,不过需后台配合,如后台php需加上header('Access-Control-Allow-Origin:源域名'),即可实现跨域。
注: IE如果想实现跨域请求,需用另外一个对象实现:XDomainRequest
增强版的ajax推荐使用onload事件来代替onreadystatechange事件,
ajax无刷新上传:通过FromData()对象添加文件file来构建提交数据。
xhr底下还有一个上传进度对象upload,上传时会触发onprogress事件,其事件ev属性有:tota为l要发数据的大小 loaded为依法数据的大小。