2013-07-13 23 views
6

Dự án của tôi hỗ trợ IE8 đến IE10. Chúng tôi cố gắng sử dụng mã tiêu chuẩn và hỗ trợ Chế độ chuẩn cho tất cả các phiên bản IE.Làm cách nào để buộc chế độ tương thích cho tất cả các phiên bản của IE?

Chúng tôi sử dụng những điều sau đây để buộc IE để mở ở chế độ mới nhất:

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

Nhưng đối với một số trường hợp chúng ta cần phải buộc IE để mở trang web trong chế độ tương thích. Giống như khi người dùng mở trang web trong IE10, nó sẽ mở trong chế độ tương thích IE10. Khi người dùng mở trang web trong IE9, nó sẽ mở trong IE9 comptibility và như vậy cho IE8.

Điều này thậm chí có thể buộc chế độ tương thích hay chúng tôi chỉ có thể buộc chế độ tài liệu chứ không phải chế độ tương thích của trình duyệt?

Nếu có thể của nó, là nó có thể có một tuyên bố chung cho tất cả các phiên bản IE và cú pháp cụ thể không phiên bản IE như trình bày trong bài liên quan khi nó Fores IE8 để IE7 thi đua: Force IE8 Into IE7 Compatiblity Mode

+4

Bạn KHÔNG BAO GIỜ cần Chế độ tương thích. Chế độ tương thích được thiết kế để làm cho trình duyệt hoạt động với các trang web OLDER chưa được cập nhật. –

+0

Không phải Chế độ tương thích IEx có hiệu quả chế độ mô phỏng IE7 chỉ với những khác biệt tinh tế trong chuỗi tác nhân người dùng cho mục đích thống kê không? –

+1

@Kolink Có, chúng tôi luôn cố gắng tạo trang web mở ở chế độ Chuẩn. Nhưng có một dự án chưa được cập nhật để làm việc với IE10. Và sẽ mất một thời gian để cập nhật dự án này. Đến lúc đó, chúng tôi muốn buộc người dùng phải mở trang web tương thích với IE9. Đó là lý do tại sao tôi hỏi. –

Trả lời

8

chế độ Compatibility có nghĩa là để giúp người dùng có các sản phẩm cũ không được cập nhật. Không có cách nào nó sẽ giúp các nhà phát triển để tránh những vấn đề ông có thể tìm thấy. Trừ khi bạn hoàn toàn không có lựa chọn (ví dụ như một phụ thuộc bị hỏng như SharePoint ...) hoặc muốn để lộ sự thiếu thẩm quyền nghiêm trọng, bạn không nên bắt buộc người dùng thấy trang của bạn ở chế độ tương thích.

Nếu bạn cần hỗ trợ tất cả các phiên bản IE, bạn phải hiểu mỗi phiên bản hoạt động như thế nào và nhận biết từng khác biệt để tạo mã có thể dẫn đến kết quả tương tự cho dù phiên bản.

Nếu ý tưởng làm chủ "phiên bản không hấp dẫn" (ví dụ IE6 trở lên) âm thanh thực sự xấu cho bạn, tôi sẽ khuyên bạn nên thiết lập một ngưỡng để tập trung vào khả năng tương thích với một số phiên bản cũ, chứ không phải là tất cả trong số đó.


EDIT: Nhưng nếu bạn thực sự cần phải ép buộc chế độ tương thích, bạn có thể sử dụng thẻ meta "X-UA tương thích". Ví dụ:

<meta http-equiv="X-UA-Compatible" content="IE=9" /> 
+0

Cảm ơn, nhưng đối với một số dự án, yêu cầu của nó cho đến khi chúng tôi sửa chữa nó cho IE10. Đó là lý do tại sao tôi hỏi, có bất kỳ cú pháp nào có thể thực sự "buộc" để IE10 không mở ở chế độ tiêu chuẩn hay không. –

+1

Bạn có thể thử nội dung '' nhưng tôi nghĩ sẽ tốt hơn nếu có một thông báo lớp phủ trên IE10 hướng dẫn người dùng nhấn F12 và đi vào chế độ tương thích cho đến khi nó được sửa cho IE10. –

+2

@Pawan Một vài tuần trước, chúng tôi tìm thấy một cam kết với toàn bộ văn bản dọc theo dòng "Fix ___ và ___ trong IE8 bằng cách buộc khả năng tương thích IE7 cho đến khi chúng tôi có thể sửa chữa đúng cách", từ khi IE8 được phát hành. Thẻ meta đó vẫn còn đó, và nó được yêu cầu để IE 8-11 không phá vỡ các trang cũ, điều này hạn chế những gì chúng ta có thể làm bây giờ - rất nhiều thứ đã được ghi đè để loại bỏ chế độ tương thích là quá nhiều công việc. Vì vậy, hãy làm theo lời khuyên này: Sửa chữa đúng cách _now_. – Izkata