2012-05-04 8 views
13

tôi vừa mới khám phá ra niềm vui của việc thêm đoạn mã sau vào tiêu đề của trang web:Sử dụng chế độ <meta http-equiv = "X-UA-Tương thích" = "IE = 8" /> trong các trang web thực hành tốt?

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

trang web chỉ làm việc, CSS là đẹp và cuộc sống là tốt. Nhưng tôi hơi lo ngại về việc thực hành tốt như thế nào?

Điều gì về một máy tính thực sự cũ đã cài đặt IE7? Phiên bản IE7 đó có thực sự truy cập vào chế độ tiêu chuẩn của IE8 không?

Trả lời

23

Câu trả lời ngắn cho phần cuối cùng của câu hỏi là không: IE7 không thể được thực hiện để hoạt động ở chế độ IE8. Vì vậy, việc sử dụng tiêu đề X-UA-Compatible sẽ không buộc các phiên bản cũ hơn của IE nghĩ rằng chúng là phiên bản mới hơn. (nếu nó hoạt động, tất cả chúng ta có thể bắt đầu sử dụng content="IE-10" và được thực hiện với sự lo lắng về tính tương thích ngược mãi mãi)

Cờ là phiên bản mới hơn của IE quay trở lại chế độ tương thích để mô phỏng các phiên bản cũ hơn. Vì vậy, cờ content="IE-8" của bạn sẽ không có hiệu lực trên IE7 hoặc IE8, nhưng sẽ làm cho IE9 rơi trở lại chế độ IE8.

Điều này có nghĩa là IE9 sẽ loại bỏ hiệu quả các tính năng mới hơn của nó, với tên cố gắng tương thích ngược.

Nếu đây là những gì bạn muốn từ IE9, thì bằng mọi cách, hãy sử dụng tiêu đề X-UA-Compatible. Nếu nó không phải là những gì bạn muốn, sau đó không sử dụng nó.

(đáng lưu ý rằng các chế độ tương thích ngược trong IE được biết là không giỏi 100% tương thích với bản sao thực của phiên bản mà chúng đang cố gắng mô phỏng, vì vậy đừng nghĩ rằng bạn sẽ nhận được một bản sao hoàn hảo của IE8 đang chạy trong IE9 hoặc - nó sẽ có những quirks riêng của nó khác với IE8 hoặc IE9 ở chế độ bình thường)

+0

Câu trả lời hay và bạn đã giải quyết được sự hiểu lầm của tôi về nó. Và bây giờ tôi cảm thấy hơi câm :) Vì vậy, nó là cho tương thích lạc hậu :) Cảm ơn bạn! :) – Nadine

+1

Đây là một phần không chính xác. Trong khi nó sẽ buộc một chế độ tương thích ngược cho các phiên bản tương lai; nó cũng sẽ ép buộc khả năng tương thích hiện tại (có thể vượt qua bởi máy khách) cho IE8. Ví dụ: nếu chính sách nhóm cho biết sử dụng chế độ xem tương thích cho tất cả các trang web mạng nội bộ thì việc sử dụng thẻ này (hoặc là tiêu đề thực hoặc nhúng trong html) sẽ cho IE bỏ qua GP vì trang web này đã được kiểm tra đầy đủ trên phiên bản đã nêu. Phần cuối cùng, tuy nhiên là đúng sự thật, sẽ có quirks bất kể nếu bạn đang hiển thị ở phiên bản mới nhất của IE hoặc tại một phiên bản được chỉ định mà không cần kiểm tra thích hợp. – Colton

+0

Cảm ơn Sparksis, đó là những gì tôi đang tìm kiếm. Tôi nhận thấy trang web của tôi ngẫu nhiên rơi trở lại chế độ IE7 (trong khi duyệt trong IE8) làm cho nó làm hài hước. sử dụng nội dung = "IE-8" đã khắc phục sự cố này. –

2

Một điều cần lưu ý là các ví dụ về thẻ microsoft đã cung cấp don ' Tôi luôn làm việc. đọc defining document compatibility, đặc biệt là phần bổ sung của cộng đồng ở cuối trang. Theo như thực hành tốt nhất, chúng có lẽ không phải là giải pháp dài hạn tốt nhất nhưng lại rất tiện dụng khi IE9 được phát hành và các trang web bị hỏng.

0

Tôi đã cài đặt IE8 trong môi trường kiểm tra Windows 7 và hiển thị một số phần của mã như IE7 trước đây (không có nội dung = "IE7" trong thẻ meta của tôi)!
Trên máy khác có Windows 7 + IE8, mã được hiển thị khác nhau, nhưng theo cách tôi muốn.
Có một bài viết thú vị tại http://www.greywyvern.com/?post=313 nói rằng cách trình bày IE8 phụ thuộc vào Gói Dịch vụ được cài đặt trên hệ thống (bài viết về XP, nhưng của tôi là Windows 7 và tôi có cùng một vấn đề).

Vì vậy, bây giờ tôi đặt nội dung = "IE10" trên các trang web của tôi và trang web của tôi được hiển thị chính xác trong IE10, IE9 và IE8.

0

Tôi đang sử dụng Discus, nó không tương thích với các phiên bản cũ hơn của IE. Tôi được trợ giúp họ sử dụng nội dung = "IE-8" trong mã trang của tôi ...

content = "IE-8" cũng yêu cầu trình duyệt thay đổi kích thước của bảng và văn bản, v.v. content = "IE-7" nó hoạt động hoàn hảo.

0

Thêm chế độ <meta http-equiv=“X-UA-Compatible” content=“IE=8” /> không phải là ý tưởng hay vì ứng dụng sẽ dừng ứng dụng của bạn để tận dụng các phiên bản trình duyệt mới hơn. Nhưng tôi nghĩ rằng việc thêm <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> là tốt vì nó buộc trình duyệt hiển thị ở bất kỳ tiêu chuẩn phiên bản mới nhất nào.

Lưu ý: Thêm Cạnh có thể phá vỡ mã của bạn vì ứng dụng của bạn có thể không được thử nghiệm cho phiên bản mới này. Trong hầu hết các trường hợp, điều này hoạt động hoàn toàn tốt đẹp, nhưng bạn không bao giờ biết.

Để biết chi tiết về các lựa chọn khác có thể tham khảo

“X-UA-Compatible” content=“IE=9; IE=8; IE=7; IE=EDGE”

0

Backward tương thích như nói đúng bởi tất cả mọi người nên được áp dụng chỉ khi nó được yêu cầu nghiêm ngặt vì nó không hoạt động hoàn hảo, và NO bạn không thể có được các tính năng của trình duyệt mới cho trình duyệt cũ chỉ bằng cách thêm thẻ tương thích.