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.
html
internet-explorer
Al Katawazi
sumber
sumber
Jawaban:
Ada mode "tepi" .
Dari halaman MSDN tertaut:
Namun, mode "edge" tidak dianjurkan dalam penggunaan produksi:
Sejujurnya saya tidak sepenuhnya mengerti mengapa. Tetapi menurut ini, cara terbaik untuk pergi saat ini adalah menggunakan
IE=8
.sumber
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 padaIE=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_ctl16Menggunakan
<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 dariIE=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"
sumber
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:
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.
sumber
Saya yakin ini akan membantu:
sumber
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:
Langkah yang sama ini juga dapat dilakukan dengan memodifikasi "HTTP Response Headers" menggunakan IIS Manager untuk server IIS, seluruh situs web, atau aplikasi tertentu.
sumber
Solusi tag meta tidak berfungsi untuk kami, tetapi pengaturan di tajuk respons berhasil:
sumber
chrome=1
properti, stackoverflow.com/a/22059516/368691 . Perhatikan bahwa Chrome Frame telah dihentikan. blog.chromium.org/2013/06/retiring-chrome-frame.htmlHanya 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:
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:
sumber
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 #):
referensi: http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html
sumber
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:
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.
http://html5readiness.com/
Perhatikan satu penyebut umum Google Chrome, ia mendukung semuanya. beharap ini membantu
sumber
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.
sumber
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.
sumber
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
sumber