2011-10-14 42 views
5

我正在嘗試在我的網頁上實現瀏覽器支持功能。對於Firefox 3.6,它工作正常,但由於某些原因,IE 8的userAgent返回了錯誤的值。爲什麼IE 8 navigator.userAgent返回MSIE 7.0?

下面是我在IE8上運行'local'javascript代碼時的情景,navigator.userAgent返回正確的信息(MSIE 8.0)。但是,當我在服務器上運行此腳本時,它將在IE 8瀏覽器上返回MSIE 7.0。

任何想法?

+2

如果你嗅探用戶代理,你這樣做是錯誤的,你將有一堆這樣的問題。你應該使用特徵檢測,但你也可以爲ie7和ie8設置條件註釋,並更改一些CSS來查看發生了什麼。 – albert

+1

使用功能檢測而不是瀏覽器嗅探會更強大,有很多庫,請嘗試[這個Google搜索](http://www.google.co.uk/webhp?sourceid=chrome-instant&ie=UTF -8離子= 1&北= 1個#sclient = PSY-AB&HL = EN&安全=關閉&諾德= 1&站點= webhp&源= HP&q =的JavaScript +特徵+檢測+文庫PBX = 1&OQ = JavaScript的+特徵+檢測+文庫水溶液= F&AQI = q-W1&AQL = 1&gs_sm = E&gs_upl = 57834l58466l1l58566l8l4l0l0l0l253l658l1.1.2l4l0&bav = on.2,or.r_gc.r_pw。,cf.osb&fp = 64c9fa8ed75e2609&ion = 1&biw = 1680&bih = 865) – Clive

+1

是您的本地網絡還是互聯網上的服務器?默認情況下,IE8假裝爲IE7 [瀏覽Intranet站點時](http://msdn.microsoft.com/zh-cn/library/cc288325%28v=vs.85%29.aspx)。 – robertc

回答

4

你確定你沒有在IE7模式下運行嗎?你可以在Developer settings(F12,我認爲)的某個地方改變它。

+0

您的意思是「兼容模式」。是的,這很可能,因爲在javascript中,使用道格拉斯克羅克福茲的圖書館,你可以檢測到它,但在服務器上你不會有機會。 – TMS

6

你需要檢查三叉戟標誌了。

三叉戟標誌

當F12開發工具用於更改IE瀏覽器,用戶代理字符串的版本令牌的瀏覽器模式被修改,出現使瀏覽器似乎是一個早期版本。這樣做是爲了允許將瀏覽器特定的內容提供給Internet Explorer,並且通常只有在網站未更新以反映當前版本的瀏覽器時才需要。

發生這種情況時,會將三叉戟標記添加到用戶代理字符串中。該令牌包含一個版本號,可讓您識別瀏覽器的版本,而不管當前的瀏覽器模式如何。

更多:http://msdn.microsoft.com/en-us/library/ms537503.aspx

相關問題