2017-05-25 132 views
0

我的目標是在IE11瀏覽器上支持HTML5,而IE11瀏覽器的用戶將其兼容模式設置爲IE8以支持舊版Web應用(例如在企業內部網上)。我想基本關閉他們訪問我的網站時的兼容模式設置。無法覆蓋IE11中的IE8兼容模式

我已經閱讀了S.O中描述的許多類似的討論,其中一些似乎已經解決了當時的問題。似乎都指向「X-UA兼容」META標籤或類似的標頭。我已經嘗試了兩種。兩者都爲我工作。我正在使用我正在使用的測試頁,以及我的瀏覽器(在文檔模式8下運行的IE 11.916.10586.0)報告的響應標題。

我的測試頁面顯示JavaScript值document.documentMode,並使用IE8中不可用的CSS3效果顯示帶圓角邊框的DIV。

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
<title>Compatibility</title> 
<style> 
div { padding: 10px; border: 1px solid #123; border-radius: 10px } 
</style> 
</head> 
<body> 
<p>documentMode=<span id="documentMode"></span> 
<p>compatMode=<span id="compatMode"></span> 
<div>Rounded</div> 
<script> 
document.getElementById("documentMode").innerHTML=document.documentMode; 
document.getElementById("compatMode").innerHTML=document.compatMode; 
</script> 
</body> 
</html> 

輸出目前看起來像這樣對IE11瀏覽器在IE8兼容模式:

Not rounded

由網絡設置選項卡報告的響應報頭包括:

X-UA-Compatible: IE=edge 

如果任何溶液作品,我希望在爲documentMode 8配置的IE11瀏覽器中看到圍繞「圓角」一詞的圓角邊框。目前,我看到方形邊界。有什麼我可以做,以解決這(我的(應用程序/服務器)端?

+0

確保「邊緣」的元標記是標題中的**第一個**元標記。如果它不是第一個,IE會忽略它。 – cgTag

+0

您可以在上面包含的HTML源代碼中看到元標記是頭元素中任何排序的第一個標記。 – phatfingers

+0

如果有企業設置強制IE8看起來像IE8無論如何,也許可以考慮像CSS餅一樣的polyfill? http://www.hongkiat.com/blog/css3-border-radius-in-internet-explorer/ – Joy

回答

0

如果父頁面將其「X-UA兼容」模式設置爲IE8,則在該頁面下的IFRAME中運行的頁面將繼承該設置。添加meta標籤:

<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 

覆蓋從一幀的父級的X-UA兼容meta標籤。當它需要(即當一個父頁面已設置內容=「IE = 8」,本地內容=「IE =邊緣」不起作用。我認爲唯一的用例設置IE =邊緣被告知系統忽略孩子I幀的X-UA兼容meta標籤。

如果你的頁面被強制進入IE = 8模式,因爲用戶打開他/她的「F12開發者工具」並手動選擇(IE8模式),那麼只要開發工具保持打開狀態,該模式將覆蓋該頁面指定或繼承的任何設置。關閉「F12開發工具」將恢復其正常設置NGS。

1

您提供的代碼是正確的。 IE中的測試運行在我的機器上以IE11模式呈現。如果您在頁面刷新上打開了調試程序,我已經在IE瀏覽器卡在文檔模式下的各個時間運行。

它也不會傷害確保安裝最新版本的IE。

+0

我看到任何網站的類似行爲,無論它們是否包含「X-UA兼容」元標記。我的解釋是,使用F12開發人員工具設置的IE8兼容模式僅在這些工具打開時纔有效。 – phatfingers