Di situs microsoft mereka mengklaim bahwa deklarasi doctype sederhana sudah cukup. Tetapi bahkan dokumen sesingkat ini kembali ke mode IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Di situs microsoft mereka mengklaim bahwa deklarasi doctype sederhana sudah cukup. Tetapi bahkan dokumen sesingkat ini kembali ke mode IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Jawaban:
Internet Explorer membuat asumsi bahwa sebagian besar halaman web ditulis untuk menargetkan versi IE sebelumnya dan melihat ke doctype, tag meta, dan HTML untuk menentukan mode kompatibilitas terbaik (terkadang salah). Bahkan dengan doctype HTML5, IE tetap akan menempatkan situs web Anda dalam mode kompatibilitas jika itu adalah situs intranet.
Untuk memastikan bahwa situs web Anda selalu menggunakan mode standar terbaru, Anda dapat memastikan Display intranet sites in Compatibly
dimatikan. Namun Anda harus melakukan ini pada setiap mesin lokal ke server web (petunjuk ada di bawah).
Atau, dan lebih baik lagi, Anda dapat menggunakan X-UA-Compatible
header untuk mematikannya dari server. Penting untuk diperhatikan bahwa menggunakan tag meta tidak akan berhasil!
<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Di seluruh MSDN disebutkan bahwa menggunakan header host atau tag meta bahkan dapat menimpa situs intranet. Artikel Memahami mode kompatibilitas di internet explorer 8 mengatakan yang berikut ini.
Sejumlah besar situs web bisnis internal dioptimalkan untuk Internet Explorer 7 sehingga pengecualian default ini mempertahankan kompatibilitas tersebut. ... Sekali lagi jika tag Meta atau header http digunakan untuk mengatur mode kompatibilitas ke dokumen itu akan menimpa pengaturan ini.
Namun, dalam praktiknya ini tidak akan berhasil, menggunakan header host adalah satu-satunya opsi yang berfungsi. Bagian komentar di artikel juga menunjukkan banyak contoh dari masalah ini.
Menggunakan tag Meta juga memiliki beberapa masalah lain seperti mengabaikan tag jika tidak langsung di bawah <head>
tag atau jika ada terlalu banyak data sebelumnya (4k). Ini juga dapat memicu dokumen untuk diurai ulang di beberapa versi IE yang akan memperlambat rendering. Anda dapat membaca lebih lanjut tentang masalah ini di artikel MSDN Praktik Terbaik: Atur HEAD Anda .
Menambahkan header Kompatibel dengan X-UA
Jika Anda menggunakan .NET dan IIS, Anda dapat menambahkan ini ke web.config
, Anda juga dapat melakukan ini secara terprogram:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Jika Anda tidak menggunakan IIS, mudah dilakukan dalam bahasa apa pun. Misalnya, berikut cara melakukannya di PHP:
header('X-UA-Compatible: IE=edge');
Selama X-UA-Compatible
header ada dengan doctype HTML5, situs akan selalu berjalan dalam mode standar terbaru.
Mematikan Tampilan Kompatibilitas
Mungkin masih berguna untuk mematikan Tampilan Kompatibilitas. Untuk melakukannya hapus centang Display all intranet sites in compatibility view
di Pengaturan Tampilan Kompatibilitas.
Anda dapat memunculkan ini dengan menekan Altuntuk mendapatkan menu.
Sunting Jawaban ini juga berkaitan dengan IE9.
alt
untuk membuka toolbar, itu di bawah alat -> pengaturan tampilan compat
Ini bekerja untuk saya ..
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
X-UA-Compatible
tag meta, namun masih tidak memicu mode dokumen Standar IE10 sebagai Default Halaman, saya menemukan bahwa jika tag meta terletak di bawah tag skrip atau hanya terlalu jauh dari atas <head>
pohon DOM, IE10 menangis dan menyetel mode dokumen ke Standar IE8. Jadi, pertahankan agar IE=edge
tag meta Anda tetap menutup <title>
tag. Tidak selalu merupakan perbaikan sederhana untuk situs Wordpress jika tidak ada kode keras di file template header. Tidak yakin apakah IE11 peduli di mana tag meta berada, tetapi semoga ini terbukti bermanfaat bagi seseorang.
Coba tambahkan tag berikut ke kepala
<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />
IE=Edge
sebaliknya
Tag meta tidak melakukan apa pun untuk situs intranet dan masalah saya adalah rendering IE10 dalam mode kompatibilitas IE10. Apa yang mengatasi masalah bagi saya adalah mengambil jawaban @ Jeow lebih jauh dan menggunakan nilai itu di header http dengan menambahkan yang berikut ke web.config
dalam IIS:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<!-- <add name="X-UA-Compatible" value="IE=edge" /> not good enough -->
<add name="X-UA-Compatible" value="IE=11,IE=10,IE=9,IE=8" />
</customHeaders>
</httpProtocol>
</system.webServer>
Untuk tujuan IE, situs intranet menyertakan situs publik yang tidak dirutekan secara eksternal - misalnya, karyawan Stackoverflow yang bekerja dari kantor mungkin akan melihat stackoverflow.com dalam mode kompatibilitas.
Ini bekerja dengan sempurna untuk saya ketika saya melakukan hal berikut:
Di http://msdn.microsoft.com/en-us/library/gg699338(v=vs.85).aspx
Menggunakan contoh tepat yang mereka berikan di kotak pertama (menambahkan yang hilang </html>
di bagian bawah), membukanya di IE10 dan standar terpaksa, saya pikir Anda mungkin perlu konten aktual dalam html untuk itu untuk memaksa standar tidak yakin.
Saran saya adalah mengganti kode kosong Anda dengan konten aktual (sesuatu yang sederhana) dan melihat apa fungsinya.