由於歷史緣由,以前不少的系統都會是 頂級頁面+Iframe來加載子級頁面的這種模式構件系統,並且系統都只能運行在IE6或者IE 高版本兼容模式下(IE 7模式)。 隨着如今的審美原來越高,腳本能裏愈來愈強,不管是用戶和是軟件商都但願能系統升級,那麼在升級的過程當中,確定是要保證原有的系統能正常運行的。css
一般的作法會是以下:html
將頁面利用 html meta標籤,設置Compatible屬性,來使得不管用戶是否設置了兼容模式,都讓當前網頁強勢使用最高版本瀏覽器模式,這樣可讓咱們界面利用一些css3的特性作出性能更好,更漂亮的網頁。也能使用更復雜的JS,更頁面增長更強的效果。前端
那麼可能會遇到如下幾種狀況:vue
爲何會出現這種狀況呢?css3
stackoverflow的一個問題《Trying to use IE=edge X-UA-Compatible in an iframe on a page using IE=EmulateIE7》, 有人給出了答案:windows
IE does not allow mixing IE9+ and older modes in a frame hierarchy. If your top document is IE7, the highest you can get in any inner document is IE8. Similarly, you wouldn't be able to host anything but IE9 mode docs inside an IE9 mode page.瀏覽器
上面的答案很通俗易懂,翻下大意以下:ide
在IE中不容許IE9+的模式和舊模式混合,若是頂級頁面的文檔模式是IE7,則你在iframe中的頁面最高級的文檔模式是IE8,一樣,頂級頁面的模式是IE9+,則iframe中的頁面文檔模式不可能低於IE9 如下。性能
這個答案和上面咱們遇到的問題是完美契合的,咱們也能夠寫一些例子來證實這個答案,【例子 】放在附件中,能夠下載更改Compatible測試驗證下。測試
csdn上也有人遇到了,這個問題,有同窗回答和上面的一致,直通車《能不能讓iframe內外的頁面用不一樣的文檔模式解析》。
當遇到背景當中的問題時,目前好像無解,只能設置頂級的網頁最高爲IE8,而後全部的系統都必須兼容IE8模式,想不支持IE8模式,只能當作外鏈來打開。全部若是要支持前有的系統,不管再過多少年,前端技術如何發展,你新作的系統,技術上也只能限定在IE8支持才狀況下。
該如何考量這個問題,還須要從業務、和遷移策略上改變,能夠考慮以下幾種方式:
各位看官,有什麼好的想法能夠提提。