各浏览器Iframe对contentWindow、contentDocument、document及frames属性测试
2012-05-12 10:44:23
互联网 【字体:
大
中
小】浏览次
Iframe易于嵌套及管理页面,但经常遇到跨域、父子页面访问问题,对于子页面访问父页面可以兼容性地通过window.Top或window.Parent或window.frameElement等操作,但对于标题中四个对象,一直没有完整测试过,故买个苦力,分享给大家。
| contentWindow | contentDocument | document | frames |
Firefox 11 | √ | √ | × | √ |
Opera 11 | √ | √ | × | √ |
Chrome 15 /360 极速 5.2 | √ | × | × | √ |
Safari 5.1 | √ | √ | × | √ |
Maxthon 3.3 | √ | √ | × | √ |
IE6 | √ | × | √ | √ |
IE7 | √ | × | √ | √ |
IE8/360安全 | √ | √ | √ | √ |
IE9 | √ | √ | √ | √ |
IE10 | √ | √ | × | √ |
搜狗/QQ/ 百度IE | √ | × | √ | √ |
百度极速 | √ | √ | × | √ |
结论:
1. 就浏览器而言(横向),IE8/IE9/360安全浏览器全部支持;
2. 就属性而言(纵向),contentWindow和frames所有浏览器都支持,其次是contentDocument,document支持性最差;
3. 由于iframe经常涉及跨域,本地测试(即未发布)环境中,chrome/360极速/IE6/IE9对于contentWindow.document属性是deny状态,原因是Unsafe JavaScript attempt to access frame with URL file:///***.html from frame with URL file:///***.html Domains, protocols and ports must match。IE9本地环境下对于contentDocument也是deny的。