2011-10-14 29 views
5

Tôi đang cố triển khai tính năng hỗ trợ trình duyệt trên trang web của mình. Đối với Firefox 3.6 nó hoạt động tốt, nhưng vì một lý do nào đó, userAgent của IE 8 trả về một giá trị sai.Tại sao trình duyệt IE 8 navigator.userHãy trả về MSIE 7.0?

Đây là kịch bản, khi tôi chạy mã javascript 'cục bộ' trên IE8, navigator.userAgent trả về thông tin chính xác (MSIE 8.0). Nhưng khi tôi chạy tập lệnh này trên máy chủ, nó trả về MSIE 7.0 trên trình duyệt IE 8.

Bất kỳ ý tưởng nào?

+2

nếu bạn đánh hơi tác nhân người dùng, bạn đang làm sai và bạn sẽ gặp phải một số vấn đề như vậy. bạn nên sử dụng tính năng phát hiện, nhưng bạn cũng có thể chỉ cần thiết lập ý kiến ​​có điều kiện cho ie7 và ie8 và thay đổi một số css để xem những gì đang xảy ra. – albert

+1

Sử dụng tính năng phát hiện thay vì trình duyệt đánh hơi sẽ mạnh mẽ hơn, có rất nhiều thư viện, hãy thử [tìm kiếm Google này] (http://www.google.co.uk/webhp?sourceid=chrome-instant&ie=UTF -8 & ion = 1 & nord = 1 # sclient = psy-ab & hl = vi & an toàn = off & nord = 1 & site = webhp & source = hp & q = javascript + tính năng + phát hiện + thư viện & pbx = 1 & oq = javascript + tính năng + phát hiện + thư viện & aq = f & aqi = q-w1 & aql = 1 & gs_sm = e & gs_upl = 57834l58466l1l58566l8l4l0l0l0l0l253l658l1.1.2l4l0 & bav = on.2, hoặc.r_gc.r_pw., Cf.osb & fp = 64c9fa8ed75e2609 & ion = 1 & biw = 1680 & bih = 865) – Clive

+1

Máy chủ trên mạng nội bộ của bạn hay trên internet? IE8, theo mặc định, giả vờ là IE7 [khi duyệt các trang mạng nội bộ] (http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx). – robertc

Trả lời

4

Bạn có chắc chắn mình không chạy ở chế độ IE7 không? Bạn có thể thay đổi nó ở đâu đó trong cài đặt Nhà phát triển (F12, tôi nghĩ).

+0

bạn có nghĩa là "chế độ tương thích". Có, đó là khả năng, bởi vì trong javascript, sử dụng thư viện Douglas Crockfords ', bạn có thể phát hiện nó, nhưng trên máy chủ bạn không có cơ hội. – TMS

6

Bạn cần phải kiểm tra Trident thẻ quá.

Trident thẻ

Khi các công cụ phát triển F12 được sử dụng để thay đổi chế độ trình duyệt Internet Explorer, phiên bản thẻ của chuỗi user-agent được sửa đổi để xuất hiện để trình duyệt dường như là một phiên bản trước đó. Điều này được thực hiện để cho phép nội dung cụ thể của trình duyệt được phân phối tới Internet Explorer và thường chỉ cần thiết khi các trang web chưa được cập nhật để phản ánh các phiên bản hiện tại của trình duyệt.

Khi điều này xảy ra, mã thông báo Trident sẽ được thêm vào chuỗi tác nhân người dùng. Mã thông báo này bao gồm số phiên bản cho phép bạn xác định phiên bản trình duyệt, bất kể chế độ trình duyệt hiện tại.

THÊM: http://msdn.microsoft.com/en-us/library/ms537503.aspx