Cách tắt Chế độ xem tương thích trong IE


76

Tôi đang tự hỏi làm cách nào để ngăn những người đang sử dụng IE 8 chuyển sang chế độ Tương thích?

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

Tôi đã tìm thấy thẻ này và tôi nghĩ điều này buộc mọi người phải ở chế độ IE-8 nhưng tôi không quá chắc chắn và không thể kiểm tra vì tôi có IE 9.

Nếu mọi người đang ở chế độ IE 9, tôi buộc họ không vào chế độ Tương thích IE 8 hoặc IE 7?

Tôi đã cố gắng đặt dòng trên vào mã của mình và truy cập IE 9 -> Công cụ -> Chế độ xem tương thích (Đã xám)

nhưng "Cài đặt chế độ xem tương thích" không bị chuyển sang màu xám và có vẻ như bạn có thể thêm trang web qua đó.

Vì vậy, không nên vô hiệu hóa?


15
@ Sparky672 - đúng vậy. Tôi không hỗ trợ IE 7 và hiển thị cảnh báo trình duyệt đã lỗi thời. Những gì tôi tìm thấy thông qua các nghiên cứu về khả năng sử dụng, hầu hết mọi người không tiết lộ rằng họ có thể đang ở chế độ tương thích (và thực sự không biết họ đang bật chế độ này) và khi bạn nói với họ trình duyệt của họ đã lỗi thời và họ nghĩ rằng họ đang sử dụng IE 8 ( trình duyệt mới nhất tại thời điểm nghiên cứu) chúng bị nhầm lẫn rất nhanh. Giải pháp tốt nhất là để buộc họ trở lại IE 8/9 (với những gì họ có thể nghĩ rằng họ đang chạy anyways)
chobo2

Câu trả lời:


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

sẽ buộc trang của bạn hiển thị theo tiêu chuẩn IE8. Người dùng có thể thêm trang web vào danh sách tương thích nhưng thẻ này sẽ được ưu tiên hơn.

Một cách nhanh chóng để kiểm tra là tải trang và nhập vào thanh địa chỉ sau:

javascript:alert(navigator.userAgent) 

Nếu bạn thấy IE7 trong chuỗi, nó đang tải ở chế độ tương thích, ngược lại thì không.


2
Điều gì xảy ra nếu họ sử dụng IE 9, điều này sẽ đặt họ thành IE 8?
chobo2

1
Nếu người dùng đang sử dụng nó trong IE9, nó sẽ hiển thị nó ở chế độ tiêu chuẩn IE8. Bạn cũng có thể sử dụng Thanh công cụ dành cho nhà phát triển F12 trong IE9 để xác minh nó.
Sriranga Chidambara

92
Sử dụng tốt hơn <meta http-equiv = "X-UA-Comp Tương thích" content = "IE = edge" /> Ngoài ra, nếu trang web được lưu trữ trên cái mà Microsoft coi là "Intranet" mà bạn đang mắc phải, nó vẫn sẽ hiển thị trong Tương thích Lượt xem. Cách duy nhất để ghi đè điều đó là bỏ chọn hộp kiểm "Hiển thị các trang web mạng nội bộ trong Chế độ xem tương thích" trong cài đặt Công cụ - Chế độ xem tương thích. Cài đặt mặc định đó trong IE8 + thực sự rất tệ.
oldwizard

5
Tôi thứ hai đó. Chỉ có một chút bởi cài đặt mặc định "Hiển thị các trang web mạng nội bộ trong Chế độ xem tương thích" (trong trường hợp của tôi là IE9).
Derek Morrison,

4
Tôi đã chọn "Hiển thị các trang web mạng nội bộ trong chế độ xem tương thích", nhưng thẻ meta Tương thích X-UA dường như đang ghi đè thẻ.
Justin Skiles

91

Tất cả những gì bạn cần là buộc vô hiệu hóa CM trong IE - Chỉ cần dán mã này (trong IE9 trở xuống cm sẽ bị tắt):

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

Nguồn: http://twigstechtips.blogspot.com/2010/03/css-ie8-meta-tag-to-disable.html


3
Điều này đã cứu tôi với khả năng tương thích Twitter Bootstrap & IE. FYI - Đây cần phải là thẻ meta ĐẦU TIÊN.
nope_four

11
Điều này không giống với <meta http-equiv = "X-UA-Compractive" content = "IE = edge" />?
eug

4
cẩn thận không sử dụng bất kỳ nhận xét có điều kiện nào trước thẻ này. Nếu không, nó không hoạt động! Tìm thấy gợi ý ở đó: stackoverflow.com/questions/3449286/…
Karl Adler

73

Điều này đủ để buộc IEngười dùng bỏ chế độ tương thích trong bất kỳ IEphiên bản nào :

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

Tuy nhiên, có một số lưu ý mà người ta cần lưu ý:

  • Thẻ meta ở trên phải được bao gồm dưới dạng thẻ đầu tiên bên dưới<head> . Chỉ <title>thẻ có thể được đặt phía trên nó.

Nếu bạn không làm điều đó, bạn sẽ gặp lỗi trên IE9Công cụ phát triển:X-UA-Compatible META tag ignored because document mode is already finalized.

  • Nếu bạn muốn đánh dấu này xác thực, hãy đảm bảo rằng bạn nhớ đóng metathẻ bằng một />thay vì chỉ >.

  • Bắt đầu với IE11, chế độ cạnh là chế độ tài liệu được ưu tiên. Để hỗ trợ / kích hoạt điều đó, hãy sử dụng khai báo kiểu tài liệu HTML5 <!doctype html>.

  • Nếu bạn cần hỗ trợ webfonts trên IE7, hãy đảm bảo bạn sử dụng <!DOCTYPE html>. Tôi đã thử nghiệm nó và thấy rằng việc hiển thị webfonts trên IE7khá không đáng tin cậy khi sử dụng <!doctype html>.

Việc sử dụng Google Chrome Frame rất phổ biến, nhưng rất tiếc là nó sẽ bị loại bỏ vào tháng này, tháng 1 năm 2014.

<meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=1">

Thông tin liên quan mở rộng ở đây . Mẹo sử dụng nó làm thẻ meta đầu tiên là trên một nguồn đã được đề cập trước đó ở đây , đã được cập nhật.


9

Nếu bạn đang sử dụng ASP.NET MVC, tôi thấy Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")trong một khối mã trong _Layout hoạt động khá tốt:

@Code
    Response.AddHeader("X-UA-Compatible", "IE=edge,chrome=1")
End Code
<!DOCTYPE html>
everything else

5

Câu trả lời do FelixFett đưa ra đã phù hợp với tôi. Để nhắc lại:

<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />

Tôi có nó là thẻ 'meta' đầu tiên trong mã của mình. Tôi đã thêm 10 và 11 vì đó là những phiên bản hiện được xuất bản cho Internet Explorer.

Tôi chỉ bình luận về câu trả lời của anh ấy nhưng tôi không có danh tiếng đủ cao ...


3

Một cách khác để đạt được điều này trong Apache là đưa các dòng sau vào .htaccessthư mục gốc của trang web của bạn (hoặc trong các tệp cấu hình của Apache).

BrowserMatch "MSIE" isIE
BrowserMatch "Trident" isIE
Header set X-UA-Compatible "IE=edge" env=isIE

Điều này yêu cầu bạn phải bật mod_headersmod_setenvifmô-đun.

Tiêu đề HTTP bổ sung chỉ được gửi đến các trình duyệt IE, không gửi đến các trình duyệt khác.


1

Trong JSF tôi đã sử dụng:

<h:head>
    <f:facet name="first">
        <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
    </f:facet>

    <!-- ... other meta tags ... -->

</h:head>

0

Việc thêm thẻ vào trang của bạn sẽ không kiểm soát giao diện người dùng trong Bảng điều khiển Internet (hộp thoại xuất hiện khi bạn chọn Công cụ -> Tùy chọn). Nếu bạn đang xem trang chủ của mình có thể là google.com, msn.com, about: blank hoặc example.com, thì Bảng điều khiển Internet không có cách nào để biết nội dung trang của bạn có thể là gì và nó sẽ không tải xuống nó trong nền.

Hãy xem tài liệu này trên MSDN đã thảo luận về chế độ tương thích và cách tắt nó cho trang web của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.