2014-02-05 63 views
0

一個奇怪的問題:考慮到一個站點強制IE8與以下語句的兼容性,瀏覽器中的代碼如何檢測瀏覽器是否實際上是IE8而不是一些較新的版?請注意,我不在尋找功能可用性,但想給IE8特定的消息。IE8兼容性設置時,如何檢測IE8與較新版本分離

<meta content='IE=8' http-equiv='X-UA-Compatible' /> 

有很多方法可用於檢測IE8,但它們似乎只能與舊版本相比。像IE11這樣的新版本在兼容模式下表現得像IE8一樣,js和css檢測IE8的方法看不到它們的區別。

我已經嘗試過在StackOverflow和各種其他網站上列出的各種方法,但是當網站強制它們進入IE8兼容模式時,似乎無法從IE11中檢測到IE8。請僅以完全適用於此確切案例的方式回答問題(不僅僅是建議什麼可能有效 - 我已經嘗試了其中的很多方法)。

+0

老實說,我不知道有*是*的方式。兼容模式的重點在於它們難以區分。 –

+0

你可能更適合使用X-UA兼容的''或header(最好)將瀏覽器強制爲「本機」行爲。如果您的網頁適用於較新的瀏覽器,請覆蓋瀏覽器設置。 – Pointy

+0

在IE中有'ScriptEngine'函數可用,請參閱[這個答案](http://stackoverflow.com/a/19570684/1169519)。 – Teemu

回答

0

讀取特定的MSDN文檔表明可以使用代理字符串中的「Trident」值,而不考慮兼容性設置。以下是不同版本IE的值。所以對於IE8來說,檢查「Trident/4.0」似乎有效。詳細信息:Understanding user-agent strings

Token   Description 
Trident/7.0 IE11 
Trident/6.0 Internet Explorer 10 
Trident/5.0 Internet Explorer 9 
Trident/4.0 Internet Explorer 8