window.name的特性
window.name 的美妙之处:name 值在不同的页面(甚至不同域名)加载后依旧存在,并且可以支持非常长的 name 值(2MB)。
window.name的应用--跨域传输数据
具体实现流程
- 准备仨页面, a.com/app.html, a.com/proxy.html, b.com/data.html
- app.html创建
<iframe>
, src指向b.com/data.html,然后设置iframe的contentWindow.name
属性 - 把
<iframe>
的src指向回同域名的a.com/proxy.html,获取contentWindow.name
属性,即获取跨域数据了 - 销毁
<iframe>
详细请参考:http://www.cnblogs.com/rainman/archive/2011/02/21/1960044.html
原理:http://www.jb51.net/article/15724.htm
跨域封装:http://kingwell-leng.iteye.com/blog/1921208
安全性
利用iframe的window.name来实现跨域数据传输是安全的,因为windowName模块总是在一个 iframe中加载资源,并且一旦获取到数据,或者当你在最顶层浏览了一个新页面,这个 iframe 将被销毁,所以其他页面永远访问不到 window.name 属性。
了解更多关于跨域技术,可参考:http://blog.sina.com.cn/s/blog_4714e4780100vdur.html
window.name的特性是什么?
时间: 2024-10-10 12:07:22