Saya melakukan pekerjaan untuk klien yang memaksakan mode kompatibilitas di semua situs intranet. Saya bertanya-tanya apakah ada tag yang bisa saya masukkan ke HTML saya yang memaksa mode kompatibilitas mati.
Saya melakukan pekerjaan untuk klien yang memaksakan mode kompatibilitas di semua situs intranet. Saya bertanya-tanya apakah ada tag yang bisa saya masukkan ke HTML saya yang memaksa mode kompatibilitas mati.
Jawaban:
<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>
Dari halaman MSDN tertaut:
Mode Edge memberitahu Windows Internet Explorer untuk menampilkan konten dalam mode tertinggi yang tersedia, yang sebenarnya mematahkan paradigma "mengunci". Dengan Internet Explorer 8, ini setara dengan mode IE8. Jika rilis (Explorer) Internet Explorer di masa depan mendukung mode kompatibilitas yang lebih tinggi, halaman yang diatur ke mode Edge akan muncul dalam mode tertinggi yang didukung oleh versi itu; Namun, halaman yang sama akan tetap muncul dalam mode IE8 bila dilihat dengan Internet Explorer 8.
Namun, mode "edge" tidak dianjurkan dalam penggunaan produksi:
Disarankan bahwa pengembang Web membatasi penggunaan mode Edge untuk menguji halaman dan penggunaan non-produksi lainnya karena kemungkinan hasil rendering konten halaman yang tidak diharapkan dalam versi Windows Internet Explorer yang akan datang.
Sejujurnya saya tidak sepenuhnya mengerti mengapa. Tetapi menurut ini, cara terbaik untuk pergi saat ini adalah menggunakanIE=8
.
IE=10
di situs mereka sendiri. Jika Anda telah menguji situs Anda di IE10 (versi pratinjau), aman untuk menggunakannya; jika tidak, Anda mungkin ingin tetap berpegang pada IE=9
saat ini.
Tools->Compatibility View Settings
, dan memeriksa Tampilkan semua situs web di Tampilan Kompatibilitas. Untuk memperbaiki masalah, saya harus mengembalikan header dalam respons HTTP:X-UA-Compatible: IE=edge
Setelah berjam-jam memecahkan masalah ini ... Berikut adalah beberapa sorotan cepat yang membantu kami dari X-UA-Compatible
dokumen: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16
Menggunakan <meta http-equiv="X-UA-Compatible" content=" _______ " />
The Standard User Agent mode (yang non-meniru) mengabaikan <!DOCTYPE>
arahan di halaman Anda dan render berdasarkan standar yang didukung oleh versi IE (misalnya, IE=8
akan lebih baik patuh jarak perbatasan meja dan beberapa selektor semu dari IE=7
).
Sedangkan, mode Emulasi memberi tahu IE untuk mengikuti <!DOCTYPE>
arahan apa pun di halaman Anda, merender mode standar berdasarkan versi yang Anda pilih dan mode quirks berdasarkanIE=5
Nilai yang mungkin untuk content
atribut adalah:
content="IE=5"
content="IE=7"
content="IE=EmulateIE7"
content="IE=8"
content="IE=EmulateIE8"
content="IE=9"
content="IE=EmulateIE9"
content="IE=edge"
Jika Anda bekerja dengan halaman di Zona Intranet, Anda mungkin menemukan bahwa IE9 apa pun yang Anda lakukan, masuk ke mode Compat IE7.
Ini karena pengaturan dalam pengaturan Kompatibilitas IE yang mengatakan bahwa semua situs Intranet harus berjalan dalam mode kompatibilitas. Anda dapat menghapus ini melalui kebijakan grup (atau sekadar menghapusnya di IE), atau Anda dapat mengatur yang berikut:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Ini berfungsi (seperti yang dijabarkan dalam jawaban lain), tetapi mungkin awalnya tidak muncul begitu: itu perlu dilakukan sebelum lembar style dinyatakan . Jika tidak, itu diabaikan.
Saya yakin ini akan membantu:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Seperti yang disarankan dalam jawaban ini untuk pertanyaan terkait, mode "edge" dapat diatur dalam file Web.Config. Ini akan membuatnya berlaku untuk semua HTML yang dikembalikan dari aplikasi tanpa perlu memasukkannya ke halaman individual:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Langkah yang sama ini juga dapat dilakukan dengan memodifikasi "HTTP Response Headers" menggunakan IIS Manager untuk server IIS, seluruh situs web, atau aplikasi tertentu.
Solusi tag meta tidak berfungsi untuk kami, tetapi pengaturan di tajuk respons berhasil:
header('X-UA-Compatible: IE=edge,chrome=1');
chrome=1
properti, stackoverflow.com/a/22059516/368691 . Perhatikan bahwa Chrome Frame telah dihentikan. blog.chromium.org/2013/06/retiring-chrome-frame.html
Hanya beberapa catatan lagi tentang topik ini berdasarkan pengalaman saya baru-baru ini. Universitas tempat saya bekerja untuk masalah laptop dengan IE 8 diatur ke mode kompatibilitas untuk semua Situs Intranet. Saya mencoba menambahkan tag meta untuk menonaktifkan mode ini untuk halaman yang dilayani oleh situs saya tetapi IE secara konsisten mengabaikan tag ini. Seperti yang disebutkan Lance dalam postingannya, menambahkan header respons telah memperbaiki masalah ini. Ini adalah bagaimana saya mengatur header berdasarkan metode boilerplate 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>
Agar header ini benar-benar dikirim, Anda harus memastikan mod_headers Anda dihidupkan di Apache. Jika Anda ingin memastikan mod ini diaktifkan, letakkan ini di halaman yang dapat menjalankan php:
<pre>
<?php
print_r(apache_get_modules());
?>
</pre>
IE8 default ke mode standar untuk mode intERnet dan kebiasaan untuk intRAnet. Tag meta HTML diabaikan jika Anda memiliki doctype yang disetel ke xhtml transisi. Solusinya adalah menambahkan header HTTP dalam kode. Ini berhasil untuk kita. Sekarang situs intranet kami memaksa IE8 untuk membuat aplikasi dalam mode standar.
Ditambahkan ke PageInit dari kelas halaman dasar (ASP.net C #):
Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");
referensi: http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html
Ini karena pengaturan dalam pengaturan Kompatibilitas IE yang mengatakan bahwa semua situs Intranet harus berjalan dalam mode kompatibilitas. Anda dapat menghapus ini melalui kebijakan grup (atau sekadar menghapusnya di IE), atau Anda dapat mengatur yang berikut:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Tampaknya tidak mungkin untuk mengubah pengaturan tampilan kompatibilitas sebagai kebijakan grup tetapi itu adalah sesuatu yang mungkin dapat diubah dalam registri, tag meta ini berfungsi dengan baik untuk saya, saya harus membuat atribut yang diperlukan berfungsi sebagai bagian dari bentuk html , itu bekerja di chrome dan firefox tetapi tidak pada IE.
Berikut ini adalah visual yang bagus dari browser apa yang mendukung setiap elemen html 5 individu.
Perhatikan satu penyebut umum Google Chrome, ia mendukung semuanya. beharap ini membantu
Sisipkan sebagai item pertama di bawah tag.
Ini memaksa IE untuk merender halaman dalam versi fisik IE, dan mengabaikan "pengaturan Mode" Browser. Ini dapat diatur dalam alat pengembang, cobalah mengubahnya ke versi IE yang lebih lama untuk diuji, ini harus diabaikan dan halaman akan terlihat persis sama.
Jika Anda memiliki akses ke server, cara yang paling dapat diandalkan untuk melakukan ini adalah melakukannya di server itu sendiri, di IIS. Masuk ke IIS HTTP Response Headers. Tambahkan Nama:
Nilai Kompatibel-X-UA : IE = edge Ini akan mengesampingkan browser Anda dan kode Anda.
Jika Anda ingin setiap halaman web memuat konten yang dipilih dan menggunakan asp.net. Cukup terapkan sebagai tag pertama di bawah tag heading di Views> shared> Layout.cshtml
hanya sebuah tip