Tôi đang làm việc cho một khách hàng buộc chế độ tương thích trên tất cả các trang web mạng nội bộ. Tôi đã tự hỏi nếu có một thẻ tôi có thể đưa vào HTML của mình để tắt chế độ tương thích.
Tôi đang làm việc cho một khách hàng buộc chế độ tương thích trên tất cả các trang web mạng nội bộ. Tôi đã tự hỏi nếu có một thẻ tôi có thể đưa vào HTML của mình để tắt chế độ tương thích.
Câu trả lời:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>My Web Page</title>
</head>
<body>
<p>Content goes here.</p>
</body>
</html>
Từ trang MSDN được liên kết:
Chế độ cạnh cho Windows Internet Explorer hiển thị nội dung ở chế độ cao nhất hiện có, điều này thực sự phá vỡ mô hình khóa của khóa Cameron. Với Internet Explorer 8, điều này tương đương với chế độ IE8. Nếu bản phát hành trong tương lai (giả thuyết) của Internet Explorer hỗ trợ chế độ tương thích cao hơn, các trang được đặt thành chế độ Edge sẽ xuất hiện ở chế độ cao nhất được phiên bản đó hỗ trợ; tuy nhiên, những trang tương tự vẫn sẽ xuất hiện trong chế độ IE8 khi được xem bằng Internet Explorer 8.
Tuy nhiên, chế độ "cạnh" không được khuyến khích sử dụng trong sản xuất:
Các nhà phát triển web nên hạn chế sử dụng chế độ Edge để kiểm tra các trang và các mục đích phi sản xuất khác vì có thể có kết quả bất ngờ về kết xuất nội dung trang trong các phiên bản Windows Internet Explorer trong tương lai.
Tôi thực sự không hiểu tại sao. Nhưng theo điều này, cách tốt nhất để đi vào lúc này là sử dụng IE=8
.
IE=10
trên các trang web của riêng họ. Nếu bạn đã kiểm tra trang web của mình trong IE10 (phiên bản xem trước), thì an toàn khi sử dụng trang này; nếu không, bạn có thể muốn gắn bó IE=9
với bây giờ.
Tools->Compatibility View Settings
và kiểm tra Hiển thị tất cả các trang web trong Chế độ xem tương thích. Để khắc phục sự cố, tôi phải trả lại tiêu đề trong phản hồi HTTP:X-UA-Compatible: IE=edge
Sau nhiều giờ khắc phục sự cố công cụ này ... Dưới đây là một số điểm nổi bật nhanh đã giúp chúng tôi từ các X-UA-Compatible
tài liệu: http://msdn.microsoft.com/en-us/l Library / cc288325 (VS85) .aspx # ctl00_contentContainer_ctl16
Sử dụng <meta http-equiv="X-UA-Compatible" content=" _______ " />
Các chế độ Tác nhân người dùng chuẩn (những người không mô phỏng) bỏ qua các <!DOCTYPE>
chỉ thị trong trang của bạn và hiển thị dựa trên các tiêu chuẩn được hỗ trợ bởi phiên bản IE đó (ví dụ: IE=8
sẽ tuân thủ tốt hơn khoảng cách đường viền bảng và một số bộ chọn giả hơn IE=7
).
Trong khi đó, các chế độ Giả lập yêu cầu IE tuân theo bất kỳ <!DOCTYPE>
chỉ thị nào trong trang của bạn, hiển thị chế độ tiêu chuẩn dựa trên phiên bản bạn chọn và chế độ quirks dựa trênIE=5
Các giá trị có thể cho content
thuộc tính là:
content="IE=5"
content="IE=7"
content="IE=EmulateIE7"
content="IE=8"
content="IE=EmulateIE8"
content="IE=9"
content="IE=EmulateIE9"
content="IE=edge"
Nếu bạn đang làm việc với một trang trong Vùng Intranet, bạn có thể thấy rằng IE9 bất kể bạn làm gì, sẽ chuyển sang chế độ Tương thích IE7.
Điều này là do cài đặt trong cài đặt Tương thích IE cho biết tất cả các trang Intranet sẽ chạy trong chế độ tương thích. Bạn có thể bỏ chọn điều này thông qua chính sách nhóm (hoặc chỉ đơn giản là bỏ chọn nó trong IE) hoặc bạn có thể đặt như sau:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Điều này hoạt động (như chi tiết trong các câu trả lời khác), nhưng ban đầu có thể không xuất hiện: nó cần phải đến trước khi các bảng định kiểu được khai báo . Nếu bạn không, nó sẽ bị bỏ qua.
Tôi tin rằng điều này sẽ thực hiện các mẹo:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Như được đề xuất trong câu trả lời này cho một câu hỏi liên quan, chế độ "cạnh" có thể được đặt trong tệp Web.Config. Điều này sẽ làm cho nó áp dụng cho tất cả HTML được trả về từ ứng dụng mà không cần phải chèn nó vào các trang riêng lẻ:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Bước tương tự này cũng có thể được thực hiện bằng cách sửa đổi "Tiêu đề phản hồi HTTP" bằng Trình quản lý IIS cho máy chủ IIS, toàn bộ trang web hoặc các ứng dụng cụ thể.
Giải pháp thẻ meta không hoạt động đối với chúng tôi nhưng đặt nó trong tiêu đề phản hồi đã làm:
header('X-UA-Compatible: IE=edge,chrome=1');
chrome=1
tài sản, stackoverflow.com/a/22059516/368691 . Nghĩ rằng Chrome Frame đã ngừng hoạt động. blog.chromium.org/2013/06/retires-chrom-frame.html
Chỉ cần thêm một vài ghi chú về chủ đề này dựa trên kinh nghiệm gần đây của tôi. Trường đại học tôi làm việc cho các vấn đề máy tính xách tay với IE 8 được đặt ở chế độ tương thích cho tất cả các Trang web Intranet. Tôi đã thử thêm thẻ meta để tắt chế độ này cho các trang được phục vụ bởi trang web của tôi nhưng IE luôn bỏ qua thẻ này. Như Lance đã đề cập trong bài đăng của mình, việc thêm tiêu đề phản hồi đã khắc phục vấn đề này. Đây là cách tôi đặt tiêu đề dựa trên phương pháp soạn sẵn HTML5:
<IfModule mod_headers.c>
Header set X-UA-Compatible "IE=edge,chrome=1"
# mod_headers can't match by content-type, but we don't want to send this header on *everything*...
<FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webm|webp|woff|xml|xpi)$">
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
Để tiêu đề này thực sự được gửi, bạn phải đảm bảo rằng bạn đã bật mod_headers trong Apache. Nếu bạn muốn chắc chắn rằng bạn đã bật mod này, hãy đặt nó vào một trang có thể chạy php:
<pre>
<?php
print_r(apache_get_modules());
?>
</pre>
IE8 mặc định ở chế độ tiêu chuẩn cho chế độ intERnet và quirks cho intRAnet. Thẻ meta HTML bị bỏ qua nếu bạn có tập tài liệu được đặt thành xhtml chuyển tiếp. Giải pháp là thêm một tiêu đề HTTP trong mã. Điều này làm việc cho chúng tôi. Bây giờ trang web mạng nội bộ của chúng tôi đang buộc IE8 hiển thị ứng dụng ở chế độ tiêu chuẩn.
Đã thêm vào PageInit của lớp trang cơ sở (ASP.net C #):
Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");
tham khảo: http://ilia.ws/archives/196-IE8-X-UA-Compiverse-Rant.html
Điều này là do cài đặt trong cài đặt Tương thích IE cho biết tất cả các trang Intranet sẽ chạy trong chế độ tương thích. Bạn có thể bỏ chọn điều này thông qua chính sách nhóm (hoặc chỉ đơn giản là bỏ chọn nó trong IE) hoặc bạn có thể đặt như sau:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Rõ ràng không thể thay đổi cài đặt chế độ xem tương thích dưới dạng chính sách nhóm nhưng đó là thứ có thể thay đổi trong sổ đăng ký, thẻ meta này hoạt động tốt với tôi, tôi phải làm cho thuộc tính bắt buộc hoạt động như một phần của biểu mẫu html , nó hoạt động trong chrome và firefox nhưng không phải IE.
Dưới đây là một hình ảnh đẹp về những gì trình duyệt hỗ trợ cho từng phần tử html 5 riêng lẻ.
Lưu ý một mẫu số chung Google Chrome, nó hỗ trợ mọi thứ. hi vọng đó là sự giúp đỡ
Chèn như là mục đầu tiên dưới thẻ.
Điều này buộc IE hiển thị trang trong phiên bản vật lý của IE và nó bỏ qua cài đặt "Chế độ" của Trình duyệt. Điều này có thể được đặt trong các công cụ dành cho nhà phát triển, hãy thử thay đổi nó thành phiên bản IE cũ hơn để kiểm tra, điều này nên được bỏ qua và trang sẽ trông giống hệt nhau.
Nếu bạn có quyền truy cập vào máy chủ, cách đáng tin cậy nhất để thực hiện việc này là thực hiện trên chính máy chủ, trong IIS. Đi vào tiêu đề phản hồi HTTP HTTP. Thêm tên: X-UA-Tương thích
giá trị: IE = edge Điều này sẽ ghi đè trình duyệt và mã của bạn.
Nếu bạn muốn mỗi trang web riêng lẻ tải nội dung đã chọn và đang sử dụng asp.net. Chỉ cần áp dụng nó làm thẻ đầu tiên bên dưới thẻ tiêu đề trong Lượt xem> được chia sẻ> Layout.cshtml
chỉ là một mẹo