Iframe易於嵌套及管理頁面,但常常遇到跨域、父子頁面訪問問題,對於子頁面訪問父頁面能夠兼容性地經過window.Top或window.Parent或window.frameElement等操做,但對於標題中四個對象,一直沒有完整測試過,故買個苦力,分享給你們。html
contentWindow contentDocument document frameschrome
Firefox 11 √ √ × √跨域
Opera 11 √ √ × √瀏覽器
Chrome 15安全
/360 極速 5.2 √ × × √測試
Safari 5.1 √ √ × √spa
Maxthon 3.3 √ √ × √htm
IE6 √ × √ √對象
IE7 √ × √ √ip
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的。