Mengganti mode kompatibilitas intranet IE8

200

Secara default IE8 memaksa situs web intranet ke mode kompatibilitas. Saya mencoba mengubah header meta ke IE8, tetapi tidak mengakui header meta dan hanya menggunakan pengaturan browser. Adakah yang tahu cara menonaktifkan ini?

sanpall
sumber
1
Coba stackoverflow.com/questions/2742853/… , yang bekerja untuk saya.
David Kolar
2
Tambahkan ini di dalam tag kepala halaman Anda: <meta http-equiv = "Kompatibel dengan X-UA" content = "IE = 8" /> (menargetkan versi IE yang Anda inginkan). Catatan, ini TIDAK akan mengubah fakta bahwa browser mengatakan itu dalam mode kompatibilitas (disebut mode browser), tetapi halaman akan dirender dalam mode standar IE8. Anda kemudian perlu mengubah javascript untuk memeriksa "trisula" jika Anda memeriksa IE8 atau lebih baru. Lihat: blogs.msdn.com/b/mikeormond/archive/2008/09/25/…
n00b
@ n00b - ini tidak berpengaruh pada situs saya.
Pete
Pemahaman saya adalah tag meta harus saya segera setelah tag kepala. Saya perhatikan beberapa skrip akan dimasukkan ke kepala di indeks 0; dengan demikian, tag meta tidak akan lagi setelah kepala.
AMissico

Jawaban:

224

Dimungkinkan untuk mengganti mode kompatibilitas di intranet.

Untuk IIS, tambahkan saja kode di bawah ini ke web.config. Bekerja untuk saya dengan IE9.

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <add name="X-UA-Compatible" value="IE=edge" />
    </customHeaders>
  </httpProtocol>
</system.webServer> 

Setara dengan Apache:

Header set X-UA-Compatible: IE=Edge

Dan untuk nginx:

add_header "X-UA-Compatible" "IE=Edge";

Dan untuk express.js:

res.set('X-UA-Compatible', 'IE=Edge')
Andras Csehi
sumber
20
Ini jawaban yang benar. Tag meta tidak melakukan apa-apa, tetapi menambahkan header respons berfungsi. Info lebih lanjut di sini: social.msdn.microsoft.com/Forums/is/iewebdevelopment/thread/…
russau
3
Setuju. Ini harus menjadi jawaban yang benar karena mengesampingkan pengaturan intranet dengan benar untuk situs web ini saja.
enriquein
9
(untuk memperjelas: Ini berfungsi untuk mode dokumen, tetapi tidak pada mode browser)
codeulike
21
Ini bukan jawaban yang benar. jawaban ini mengubah mode dokumen JANGAN mengubah "mode browser" yang penting. Saya masih mencari resolusi untuk masalah itu.
DeveloperChris
4
Ini bukan jawaban yang benar, karena itu .net spesifik (bahkan tanpa mengakui fakta).
Daddy32
84

Michael Irigoyen benar TETAPI itu sedikit lebih rumit ...

jika Anda menggunakan pelat yang indah oleh Paul Irish maka Anda akan memiliki sesuatu seperti berikut: -

<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

Ini TIDAK akan bekerja seperti yang diharapkan dan memaksakan IE ke mode kompatibilitas dalam Intranet lingkungan jika Anda memiliki "Tampilkan situs intranet dalam tampilan kompatibilitas" dicentang. Anda perlu menghapus komentar IE bersyarat untuk mencegah mode kompatibilitas Intranet.

Jadi kode berikut akan berfungsi:

<!doctype html>
<html class="no-js" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

Pada dasarnya jika Anda memicu komentar bersyarat IE sebelum <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">pernyataan itu maka Anda akan dipaksa ke mode kompatibilitas di lingkungan Intranet jika Anda menjalankan IE9 dengan pengaturan default.

UPDATE - INFO TAMBAHAN: Tetapi perhatikan bahwa ada trik yang akan membuat HTML5 boilplate bekerja:

Tambahkan emtpy, komentar kondisional sebelum DOCTYPE. Dan catatan juga, bahwa ketika Anda melakukan itu , maka Anda dapat juga menambahkan komentar bersyarat sekitar X-UA-Compatibledirektif, membuat halaman HTML5-sah juga. Jadi misalnya:

<!--[if HTML5]><![endif]-->
<!doctype html>
<!--[if the boilerplate conditionals goes here<![endif]-->
<head>
<!--[if !HTML5]>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<![endif]-->

Sebuah posting blog yang terinspirasi oleh bagian pertama dari jawaban ini , memiliki lebih rinci. Dan omong-omong: Seperti disebutkan dalam posting blog, kita juga bisa mengganti komentar bersyarat sebelum DOCTYPE dengan bersyarat setengah komentar dengan ada kondisi : <!--[]-->. Jadi, seperti ini:

<!--[]-->
<!doctype html>
<!--[if the boilerplate conditionals goes here<![endif]-->
<head>
<!--[if !HTML5]>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<![endif]-->

Tetapi perhatikan bahwa varian terakhir ( <--[]--><!DOCTYPE html>) akan, seperti yang dijelaskan misalnya dengan jawaban atas pertanyaan lain , mengaktifkan masalah yang sudah diketahui dengan baik - untuk versi lawas IE tanpa dukungan untuk X-UA-Compatioble(baca: untuk IE7 dan IE6) - bawa browser ke mode quirks.

Andrew
sumber
Ini tidak menyelesaikan masalah bagi saya. Namun, FYI, menambahkan "Kompatibel X-UA" sebagai Header DID memperbaiki masalah!
Scott Rippey
34

Jika Anda membuka menu "Alat" dan memilih "Pengaturan Tampilan Kompatibilitas" Pada dialog di bagian bawah adalah pengaturan "Tampilkan situs intranet dalam mode kompatibilitas". Jika Anda tidak mencentang ini yang seharusnya menyelesaikan masalah dan IE akan menggunakan mode berdasarkan DOCTYPE.

PilotBob
sumber
19
Saya tidak downvote, tapi saya kira itu karena Anda menjawab dari perspektif pengguna (apa yang harus dilakukan pengguna). Pertanyaan ini berasal dari pengembang web dan menanyakan cara memperbaiki masalah tanpa mengharuskan pengguna untuk melakukan sesuatu secara khusus.
Roy Tinker
1
Selain itu, ini tidak memungkinkan untuk memelihara kompatibilitas dengan aplikasi lama. Jika Anda menghapus centang pengaturan itu, aplikasi lama Anda mungkin rusak tanpa ada cara untuk memperbaruinya. Saya pikir penanya sedang mencari cara untuk memaksakan mode standar ketika semua aplikasi lain di intranet mereka memerlukan kotak centang untuk diperiksa untuk mode kompatibilitas.
Andrew Lewis
2
Saya percaya dia menjawabnya dari perspektif programmer. "... IE akan menggunakan basis mode pada DOCTYPE". Lihat: msdn.microsoft.com/en-us/library/ms535242%28VS.85%29.aspx Jika perusahaan menjalankan Active Directory, perubahan pada pengaturan browser dapat diperbanyak oleh administrator. Anda tidak dapat melakukannya dengan FireFox!
Nate Zaugg
@AndrewLewis mungkin. Tapi, ada tombol mode kompatibilitas di bilah URL yang akan mengatur browser untuk menggunakan mode compat untuk situs tertentu. Atau Anda dapat menambahkannya secara manual di dialog. Sekali lagi, hal ini dapat dilakukan secara global oleh IT.
PilotBob
2
@ Pilobob jika Anda memiliki pengguna 120 ribu + dan ratusan (jika tidak ribuan) situs intranet untuk mendukung, ini bukan solusi yang layak.
Yorch
19

Ada sejumlah kebingungan dalam jawaban untuk pertanyaan ini.

Jawaban teratas saat ini adalah solusi sisi server yang menetapkan bendera di header http dan beberapa komentar menunjukkan bahwa solusi menggunakan tag meta tidak berfungsi.

Saya pikir entri blog ini memberikan gambaran yang bagus tentang bagaimana menggunakan informasi meta kompatibilitas dan dalam pengalaman saya bekerja seperti yang dijelaskan: http://blogs.msdn.com/b/cjacks/archive/2012/02/29/using/x- ua-kompatibel-untuk-membuat-tahan lama-perusahaan-web-aplikasi.aspx

Poin utama:

  • mengatur informasi menggunakan tag meta dan di header keduanya berfungsi
  • Tag meta diutamakan di atas tajuk
  • Tag meta harus menjadi tag pertama, untuk memastikan bahwa browser tidak menentukan mesin rendering sebelum berdasarkan heuristik

Satu poin penting (dan saya pikir banyak kebingungan berasal dari titik ini) adalah bahwa IE memiliki dua "kelas" mode:

  1. Mode dokumen
  2. Mode browser

Mode dokumen menentukan mesin rendering (bagaimana rendering halaman web).

Mode Browser menentukan string User-Agent (UA) yang dikirim IE ke server, apa Mode IE default untuk, dan bagaimana IE mengevaluasi Komentar Bersyarat.

Lebih lanjut tentang informasi tentang mode dokumen vs mode browser dapat ditemukan di artikel ini: http://blogs.msdn.com/b/ie/archive/2010/06/16/ie-s-compatibility-features-for- situs-developers.aspx? Redirected = true

Dalam pengalaman saya, meta data kompatibilitas hanya akan memengaruhi mode dokumen . Jadi, jika Anda mengandalkan deteksi peramban, ini tidak akan membantu Anda. Tetapi jika Anda menggunakan deteksi fitur, ini harus menjadi jalan yang harus ditempuh.

Jadi saya akan merekomendasikan menggunakan tag meta (di halaman html) menggunakan sintaks ini:

<meta http-equiv="X-UA-Compatible" content="IE=9,10" ></meta>

Perhatikan: berikan daftar mode peramban yang telah Anda uji.

Posting blog juga menyarankan penggunaan EmulateIEX. Berikut kutipannya:

Yang sedang berkata, satu hal yang saya temukan aneh adalah ketika aplikasi meminta EmulateIE7, atau EmulateIE8. Mode ini meniru sendiri keputusan. Jadi, alih-alih secara spesifik tentang apa yang Anda inginkan, Anda meminta salah satu dari dua hal dan kemudian menentukan yang mana dari dua hal tersebut dengan mencari di tempat lain dalam kode untuk DOCTYPE (dan kemudian mencoba memahami apakah DOCTYPE akan memberikan Anda standar atau quirks tergantung pada isinya - tugas lain yang kadang membingungkan). Daripada melakukan itu, saya pikir lebih masuk akal untuk secara langsung menentukan apa yang Anda inginkan, daripada memberikan respons yang sendiri merupakan pertanyaan. Jika Anda menginginkan standar IE7, maka gunakan IE = 7, daripada IE = EmulateIE7. (Perhatikan bahwa ini tidak berarti Anda tidak boleh menggunakan DOCTYPE - Anda harus.)

stefan.s
sumber
bagaimana cara mengubah mode browser?
Vishnudev K
kalimat mode peramban membingungkan
Justice Fist
@JusticeFist Ya, Anda benar, terima kasih. Saya mencoba memperbaikinya.
stefan.s
1
@VishnudevK Satu-satunya cara saya tahu adalah menggunakan alat pengembang. Tetapi Anda mungkin menginginkan solusi terprogram.
stefan.s
9

Coba metatag ini:

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

Seharusnya memaksa IE8 untuk merender sebagai Mode Standar IE8 bahkan jika "Tampilkan situs intranet dalam tampilan kompatibilitas" diperiksa [baik untuk intranet atau semua situs web], saya mencobanya sendiri di IE 8.0.6

Ala 'Alnajjar
sumber
15
Tidak.
Dennis C
11
Ini sebenarnya benar, tetapi HARUS muncul sebelum dan semua tag META pada halaman atau itu tidak akan berfungsi.
Michael Irigoyen
2
Ini tidak bekerja untuk saya. Sejauh yang saya tahu IE8s "Tampilkan situs intranet dalam mode kompatibilitas" tidak dapat
ditimpa
6
(untuk memperjelas: Ini berfungsi untuk mode dokumen, tetapi bukan mode browser. Jadi rendering diperbaiki, tetapi browser masih berpura-pura sebagai IE7)
codeulike
7

Admin sistem kami menyelesaikan masalah ini dengan menghapus centang pada kotak secara global untuk organisasi kami. Pengguna bahkan tidak perlu keluar.

masukkan deskripsi gambar di sini

James Lawruk
sumber
1
Solusi ini berfungsi dengan baik jika semua situs di intranet dapat menggunakan standar web terbaru. Namun, jika beberapa tidak bisa maka metode ini secara tidak sengaja akan mematahkan mereka ... Saya akan mendekati dengan hati-hati.
ᴍᴀᴛᴛ ʙᴀᴋᴇʀ
4

Saya menemukan jawaban yang memungkinkan untuk mengganti Tampilan Kompatibilitas Intranet yang dicentang. Cukup tambahkan acara OnInit pada halaman Anda pada baris ini (tidak perlu meta atau web.config customHeader):

Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");
Cyrille Perrot
sumber
1
Jawaban khusus pengembangan platform ... bahkan tanpa menentukan platform. Saya kira Anda berbicara tentang Visual Studio .NET? Sejauh yang saya tahu peristiwa 'OnInit' tidak ada (dalam Javascript, Java, PHP, ....)
Stijn de Witt
3

Coba letakkan yang berikut ini di header:

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

Courtesy Paul Irish's HTML5 Boilerplate (tetapi berfungsi di XHTML Transitional, juga).

Gabe
sumber
3

Saya dapat mengganti mode kompatibilitas dengan menetapkan tag meta sebagai THE TAG PERTAMA di bagian kepala, bukan hanya tag meta pertama tetapi sebagai dan hanya sebagai TAG SANGAT PERTAMA .

Terima kasih kepada @ stefan.s karena telah menjadikan saya jawaban yang sangat baik. Sebelum membaca yang saya miliki:

INI TIDAK BEKERJA

<head> 
<link rel="stylesheet" type="text/css" href="https://stackoverflow.com/qmuat/plugins/editors/jckeditor/typography/typography.php"/>
<meta http-equiv="x-ua-compatible" content="IE=9" >

memindahkan tag tautan dari tempatnya dan itu berfungsi

KARYA INI :

<head><meta http-equiv="x-ua-compatible" content="IE=9" >

Jadi klien IE8 yang diatur untuk menggunakan kompatibilitas menjadikan halaman sebagai mode Standar IE8 - konten = 'IE = 9' berarti menggunakan standar tertinggi yang tersedia hingga dan termasuk IE9.

PeteS_UK
sumber
2

Ini bukan solusi yang tepat, tetapi saya rasa ini adalah yang terbaik. Di situs intranet kami, kami memberi tahu orang-orang bahwa itu hanya dapat diakses oleh Firefox, kami tidak menghargai pengguna IE di sekitar sini. Periksa agen pengguna di sisi server atau klien dan tolak mereka akses dari IE. Dan saya seorang programmer .NET.

Caimen
sumber
1
Saya suka ide Anda. tapi kami tidak punya firefox di sini.
Dennis C
22
Terburuk. Saran. Pernah. Itu sama buruknya dengan semua situs intranet yang hanya untuk IE. Coba lakukan sedikit kerja ekstra dan buat barang-barang Anda bekerja di semua browser umum. Tidak sesulit itu.
mhenry1384
2
@ mhenry1384 Peduli untuk menjelaskan mengapa ini merupakan saran yang mengerikan untuk memiliki sistem intranet yang terkunci? Anda tidak harus mendukung kuark untuk browser lama. Anda tahu pengguna Anda akan mendapatkan pengalaman yang diinginkan. Ini bukan sistem publik, siapa peduli, apakah Anda masih mendukung IE 5.5? Saya memberi tahu pengguna publik saya untuk memperbarui. Saya tidak boleh membuang-buang waktu saya pada sistem backend, masyarakatlah yang membutuhkan saya. Ini tidak seperti saya menguncinya ke IE 6 dan memerlukan ActiveX seperti beberapa. Misalnya sistem saya memungkinkan Firefox 6 ke atas. Jadi jika Firefox 27 keluar, itu masih berfungsi. Entah downvote saya atau buat argumen yang sebenarnya.
Caimen
2
Setiap situs intranet yang saya gunakan yang dikunci untuk browser tertentu dikunci ke IE. Ini membuatku gila, karena aku benci IE sama seperti lelaki berikutnya. Memaksa pengguna Anda untuk menggunakan browser pilihan Anda (bukan milik mereka), bahkan jika itu adalah TETAPI IE, tampaknya bertentangan dengan web, bahkan web intranet. Hanya saja, biasanya tidak sulit untuk membuat situs web berfungsi di IE7 / 8/9, terutama jika Anda menggunakan perpustakaan seperti jQuery. Biarkan pengguna menggunakan apa yang mereka inginkan.
mhenry1384
2
Sebuah situs yang ditulis untuk Firefox 10, misalnya, dalam pengalaman saya hampir selalu berfungsi dengan baik di IE9 tanpa modifikasi. Jadi membatasi pengguna untuk menggunakan IE9 berarti ada hal lain yang terjadi. Ini menunjukkan bahwa Anda sedang menjalankan misi ideal, bukan seseorang yang mencoba menulis perangkat lunak web yang bagus. Jika itu hanya masalah tidak punya waktu untuk menguji browser selain Firefox, apakah Anda juga membatasi orang untuk menggunakan Opera? [Maaf karena terlalu bertele-tele. Saya harus kembali untuk memperbaiki masalah IE8 sialan ini yang saya alami ... :-)]
mhenry1384
1

Saya telah berjuang dengan masalah ini dan ingin membantu memberikan solusi dan wawasan yang unik.

Kerangka kerja berbasis AJAX tertentu akan menyuntikkan javascripts dan stylesheet di awal <head>dan melakukan hal ini tampaknya mencegah solusi meta tag yang sudah mapan bekerja dengan baik. Dalam hal ini saya menemukan bahwa secara langsung menyuntikkan ke header respons HTTP, seperti jawaban Andras Csehi yang akan menyelesaikan masalah.

Namun bagi kita yang menggunakan Java Servlets, cara yang baik untuk menyelesaikan ini adalah dengan menggunakan ServletFilter.

public class EmulateFilter implements Filter {

@Override
public void destroy() {
}

@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
        FilterChain arg2) throws IOException, ServletException {
    HttpServletResponse response = ((HttpServletResponse)arg1);
    response.addHeader("X-UA-Compatible", "IE=8");
    arg2.doFilter(arg0, arg1);
}

@Override
public void init(FilterConfig arg0) throws ServletException {
}

}
maple_shaft
sumber
1

Kami dapat mengatasi masalah ini di lingkungan Spring-Apache-tomcat dengan menambahkan satu baris tunggal dalam metode RequestInterceptor -

//before the actual handler will be executed
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler)
throws Exception {

// Some logic

// below statement ensures IE trusts the page formatting and will render it acc. to IE 8 standard.
response.addHeader("X-UA-Compatible", "IE=8"); 

return true;
}

Referensi dari - Cara membuat filter dan memodifikasi header respons. Ini mencakup bagaimana kita dapat menyelesaikan masalah ini melalui RequestInterceptor (Spring).

JackSparrow
sumber
0

Jika Anda ingin situs Web Anda memaksakan mode standar IE 8, gunakan metatag ini bersama dengan DOCTYPE yang valid:

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

Catat nilai "EmulateIE8" dan bukan "IE8".

Menurut IE devs, ini harus, "Tampilan Standar DOCTYPEs dalam mode Standar IE8; Tampilan Quirks DOCTYPEs dalam mode Quirks. Gunakan tag ini untuk mengganti tampilan kompatibilitas pada mesin klien dan memaksa Standar ke Standar IE8."

info lebih lanjut tentang posting blog IE ini: http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx

ashtonium
sumber
0

Pertanyaan ini adalah duplikat dari mode browser Force "Internet Explorer 8" di intranet .

Tanggapan di sana menunjukkan bahwa tidak mungkin untuk menonaktifkan tampilan kompatibilitas (di sisi server) - https://stackoverflow.com/a/4130343/24267 . Tampaknya memang itulah masalahnya, karena tidak ada saran yang pernah saya coba yang berhasil. Di IE8, "Browser Mode" diatur ke Internet Explorer 8 Tampilan kompatibilitas apa pun header X-UA-Kompatibel yang Anda kirim.

Saya harus melakukan beberapa penanganan khusus untuk IE7 dan mode kompatibilitas, yang menyebabkan browser membuat menggunakan IE8 tetapi melaporkan itu adalah IE7, memecahkan kode saya. Ini adalah bagaimana saya memperbaiki kode saya (saya sadar ini adalah hack yang mengerikan dan saya harus menguji fitur bukan versi browser):

isIE8 = navigator.appVersion.indexOf ("MSIE")! = -1 && parseFloat (navigator.appVersion.split ("MSIE") [1]) == 8;
if (! isIE8 && navigator.appVersion.indexOf ("MSIE")! = -1 && parseFloat (navigator.appVersion.split ("MSIE") [1]) == 7 && navigator.appVersion.indexOf ("Trident") ! = -1) {
    // Pembohong, ini adalah IE8 dalam mode kompatibilitas.
    isIE8 = benar;
}
mhenry1384
sumber
0

Punya masalah yang sama. Ini berhasil dengan menggunakan

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
Sandro
sumber
0

Tambahkan ini di dalam tag kepala halaman Anda (menargetkan versi IE yang Anda inginkan):

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

Catatan, ini TIDAK akan mengubah fakta bahwa browser mengatakan itu dalam mode kompatibilitas (disebut mode browser), tetapi halaman akan dirender dalam mode standar IE8. Jika MASIH tidak menampilkan apa yang Anda inginkan, itu mungkin karena Anda memiliki javascript yang keliru memeriksa versi IE. Lihat posting blog berikut untuk menentukan properti mana yang harus Anda pilih karena meskipun Anda menetapkan tag meta X-UA-Compatible, string agen pengguna masih akan mengatakan MSIE 7.0 .

Dalam kasus saya, untuk perbaikan saya harus menambahkan cek untuk mode Kompatibilitas IE7. Saya melakukannya menggunakan kode javascript sederhana:

                //IE8 and later will have the word 'trident' in its user agent string.
                if (navigator.userAgent.indexOf("Trident")>-1) { //do something }
n00b
sumber
0

Bagi siapa pun yang membaca ini ingin menonaktifkan ini melalui GPO untuk semua pengguna, ini adalah pengaturan:

Konfigurasi Komputer / Template Administratif / Komponen Windows / Internet Explorer / Tampilan Kompatibilitas / Nyalakan Mode Standar Internet Explorer untuk Intranet Lokal

meskipun edit web.config memperbaikinya untuk saya.

Schrodo_Baggins
sumber
Untuk pergi ke Editor Kebijakan Grup Lokal , Anda dapat menjalankan gpedit.msc dari Run.
ROMANIA_engineer
0

Ubah header di .htaccess

BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie

Temukan solusi untuk masalah ini di sini: https://github.com/h5bp/html5-boilerplate/issues/378

pengguna1858301
sumber
Tidak semua orang menggunakan Apache
Burjua
0

Komentar Stefan S tentang mode dokumen versus mode browser sangat relevan untuk masalah saya.

Saya memiliki data meta X-UA-Content di halaman, tetapi saya sisi klien sedang menguji versi browser melalui navigator.appVersion. Tes ini tidak mencerminkan meta data karena memberikan mode browser bukan mode dokumen.

Jawaban bagi saya adalah untuk menguji document.documentModesesuatu seperti:

function IsIE(n)
{
    if (navigator.appVersion.indexOf("MSIE ") == -1) return false;
    var sDocMode = document.documentMode;
    return (isFinite(sDocMode) && sDocMode==n);
}

Sekarang, tag meta X-UA-Content saya tercermin dalam pengujian browser saya.

Mengapa saya melakukan hal yang tidak disukai saat menguji browser? Mempercepat. Berbagai add-in jQuery saya, seperti tablesorter terlalu lambat pada IE6 / 7, dan saya ingin mematikannya. Saya tidak yakin bahwa pengujian untuk fitur browser dapat membantu saya menyelesaikan ini sebaliknya.

Herc
sumber