1.document.frames()与document.frames[]的区别
<html> <body> <iframe id="ifr_1" name="ifr_1"> </iframe> </body> </html>
js:
alert(document.frames("ifr_1"));//火狐,谷歌,ie都无法识别这个方法
alert(document.frames["ifr_1"]);//可以得到一个window对象
2.document.frames与window.frames在不同浏览器中的使用
上面的例子中,document.frames["ifr_1"]只有在ie中可以识别,
document.frames 只有 IE Opera 支持。等同于 window.frames。用来取得当前页面内 window 对象的集合。
在 Firefox Chorome Safari 中使用 document.frames 不能获取到 FRAME 元素
alert(window.frames["ifr_1"]);//可以在ie,火狐,谷歌,360中输出window对象
3.document.domain+iframe的设置
3.1 什么是跨域
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。这里把涉及到跨域的一些问题简单地整理一下:
首先什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。更详细的说明可以看下表:
| URL | 说明 | 是否允许通信 |
|---|---|---|
| http://www.a.com/a.js http://www.a.com/b.js |
同一域名下 | 允许 |
| http://www.a.com/lab/a.js http://www.a.com/script/b.js |
同一域名下不同文件夹 | 允许 |
| http://www.a.com:8000/a.js http://www.a.com/b.js |
同一域名,不同端口 | 不允许 |
| http://www.a.com/a.js https://www.a.com/b.js |
同一域名,不同协议 | 不允许 |
| http://www.a.com/a.js http://70.32.92.74/b.js |
域名和域名对应ip | 不允许 |
| http://www.a.com/a.js http://script.a.com/b.js |
主域相同,子域不同 | 不允许 |
| http://www.a.com/a.js http://a.com/b.js |
同一域名,不同二级域名(同上) | 不允许(cookie这种情况下也不允许访问) |
| http://www.cnblogs.com/a.js http://www.a.com/b.js |
不同域名 | 不允许 |
123
原文:http://www.cnblogs.com/waisonlong/p/4955413.html