Mengapa Internet Explorer 11 tidak menerima komentar bersyarat bahkan saat meniru mode dokumen Internet Explorer 8?

110

Saya menggunakan alat pengembang Internet Explorer 11 baru untuk mengalihkan mode dokumen ke "8", tetapi komentar bersyarat masih diabaikan, artinya, komentar tersebut tidak diurai dengan benar dan berperilaku seperti komentar normal. Jadi file referensi apa pun di dalam komentar bersyarat tidak diminta / dimuat oleh browser.

Mengapa ini terjadi? Apakah ini bug?

Jika menurut Anda ini memang bug yang perlu diperbaiki, silakan masuk dan katakan bahwa Anda juga dapat mereproduksi ini di laporan bug Microsoft yang dilaporkan untuk masalah ini:
Komentar bersyarat tidak berfungsi saat meniru mode dokumen melalui F12 Developer Alat .

Pembaruan: Masalah ini telah dilaporkan telah diperbaiki dalam laporan bug yang disebutkan.

thasmo
sumber
18
Menanyakan pada diri saya pertanyaan yang sama! Saya tahu mereka menjatuhkan komentar bersyarat di IE10 tetapi IMHO emulator harus mempertimbangkannya saat menguji browser lama.
Alexander Rechsteiner
12
Memang, itu membuat fitur tersebut tidak dapat digunakan.
thasmo
3
Pertanyaan sebenarnya adalah mengapa Anda menggunakan mode kompatibilitas? Saran saya adalah hindari mode compat seperti wabah. Ini tentu saja tidak cocok untuk pengujian, terlepas dari masalah yang Anda jelaskan, karena ada bug dan keunikan yang diketahui dengannya yang sudah ada sejak mereka pertama kali memperkenalkan mode compat. Jika Anda menguji kompatibilitas mundur, Anda benar-benar perlu menggunakan salinan asli IE8 (dan IE9, dll). Buka modern.ie dan unduh VM yang mereka sediakan untuk pengujian.
Spudley
19
Ada bug yang terbuka di pelacak bug IE. Saya mendorong semua orang untuk mengunjungi dan memberi tahu Microsoft bahwa Anda dapat mereproduksi ini. connect.microsoft.com/IE/feedback/details/806767/…
Evgeny
15
Saya pikir menggunakan mode kompatibilitas untuk pengujian lebih masuk akal daripada mengunduh gambar 1/2 gigabyte atau lebih untuk setiap browser. Jadi ada bug, (dan ini mungkin salah satunya), tetapi 99.% dari waktu itu hanya berfungsi.
Rolf

Jawaban:

29

Menurut untukJacob Rossi [MSFT]

Ini harus diperbaiki dalam Pembaruan 1 untuk IE11, yang dirilis minggu lalu .

Itu diposting pada 22 April 2014.

Dalam menjalankan beberapa tes sendiri, tampaknya ini telah diperbaiki dan semuanya berjalan lancar lagi untuk menguji browser paling menakjubkan yang pernah dibuat ... Internet Explorer!

L84
sumber
4
Ini perlu lebih banyak disukai. Saya harus menggali dua jawaban stack overflow hanya untuk sampai di sini.
Tek
@ Lynda: Bisakah Anda memposting versi IE11 Anda? milikku adalah11.0.9600.17631
Mohamed Hussain
1
@MohamedHussain - Versi saya adalah 11.0.9600.17690IC.
L84
3
Anda HARUS bersikap sarkastik.
paddotk
Tentang IE sebagai 'browser paling menakjubkan'?
paddotk
20

Saya baru saja mencoba menggunakan ini di Internet Explorer 11 pada Windows 7 untuk memastikan elemen semantik HTML5 yang saya gunakan dibuat untuk Internet Explorer 8 dan di bawahnya (melalui komentar bersyarat), dan browser mengabaikannya begitu saja. -_-

Fitur ini bekerja dengan sangat baik di Internet Explorer 10 , dan Microsoft hanya perlu mengotak-atiknya, bukan?

<!--[if lte IE 8]><script src="ie8-html5.js"></script><![endif]-->

Selain itu, saya sebenarnya menikmati Internet Explorer, yang membuat perubahan.

DylRicho
sumber
4
Ya, IE 11 adalah pengalaman yang lebih baik, dengan semua animasi yang benar-benar berfungsi :). Ya MS memiliki sejarah "mengutak-atik" dengan hal-hal hanya ketika pengguna mulai terbiasa dengannya. Lihatlah apa yang mereka lakukan pada Windows XP ... "Memperbaiki apa yang tidak rusak", beberapa orang akan berkata. Pokoknya itu menyebalkan
Rolf
9
Browser Internet Explorer sangat buruk. Tidak ada konsistensi antar versi. Siapa yang mengembangkan ini? bahkan nenekku bisa melakukan pekerjaan yang lebih baik!
Adrien Be
4
EDIT: mereka memperbaiki ini (atau mencoba) sejak 22 Januari 2014 connect.microsoft.com/IE/feedback/details/806767/…
Adrien Be
@AdrienBe Nah, itu tentunya merupakan langkah ke arah yang benar.
DylRicho
1
@Anthony Jawaban saya salah? Bagaimana? Ini pada dasarnya mengatakan apa yang baru saja Anda katakan.
DylRicho
17

Ini berfungsi untuk saya dan sepertinya perbaikan paling elegan / mudah ( Internet Explorer 10 dan Internet Explorer 11 saya kira adalah satu-satunya browser yang mendukung -ms-high-contract):

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* IE10+ specific styles go here */
}
cmartin.dll
sumber
Luar biasa, terima kasih. Kapan Microsoft akan menghentikan campur aduk ini?
Kohjah Breese
Untuk alasan itu, IE 11 tidak menghormati metode lama bersyarat. <! - [if IE]>
Gino
8

Saya baru-baru ini mengalami masalah yang sama. Saya juga menemukan bahwa beberapa komentar bersyarat berfungsi:

  • gtdan ltbekerja dengan baik
  • gtedan ltetidak pernah berhasil

Jadi salah satu solusi potensial adalah mengubah pernyataan kondisional untuk menggunakan operator gtdan lt.

Alternatif lain, yang menurut saya lebih berguna, adalah menggunakan layanan seperti browserstack .

pengguna1429980
sumber
8

Saya punya solusi lain untuk ini.

Internet Explorer 11 dengan mode kompatibilitas Internet Explorer 8 diaktifkan berisi string 'MSIE 8.0', jadi:

(Contoh PHP)

if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0') !== false) {
    $head[] = sprintf('<link rel="stylesheet" href="ie8.css" />');
}
Andrei Konstantinov
sumber
2
Saya telah menguji mode dokumen dan tampaknya tidak mengubah agen pengguna ?!
mgutt
@mgutt Anda benar. Ada dua opsi dalam Emulasi - Mode dokumen dan Agen pengguna. Mode dokumen mengubah cara kerja browser dan cara merender halaman, dan Agen Pengguna mengubah situs yang memberi tahu browser tentang versi browser. (dalam contoh saya, variabel $ _SERVER ['HTTP_USER_AGENT'] yang berisi info ini) Jadi pada dasarnya Anda perlu mengubah kedua opsi ini menjadi, misalnya, IE8.
Andrei Konstantinov
@ Andrew Terima kasih. Sekarang saya menemukan pengaturannya. Masalahnya adalah terjemahan bahasa Jerman. Mereka menerjemahkan "agen pengguna" dengan "Agen-Zeichenfolge des Benutzer" dan saya pikir ini berarti charset. Beberapa hal tidak boleh diterjemahkan;)
mgutt
2
Solusi ini adalah yang terbaik. Saya telah mengonversinya menjadi ASP.NET MVC Razor dan berfungsi dengan sempurna: @ {if (Request.UserAgent.Contains ("MSIE 8.0")) {/ * metatag Anda di sini * /}}
Valerio Gentile
Situs ini adalah referensi praktis untuk tampilan semua permutasi string agen pengguna: useragentstring.com/pages/Internet%20Explorer
Drew
4

Saya memiliki masalah yang sama - hal itu membuat saya gila sepanjang pagi. Saya menambahkan Modernizr , dan saya memilih semua opsi, termasuk yepnope.js.

Jadi sekarang tes saya terlihat seperti ini:

Modernizr.load({
            test: Modernizr.canvas,
            nope: ['Content/Site-ie-8.min.css', 'Content/font-awesome-ie7.min.css']
});

Dalam hal ini saya menguji kanvas (yang tidak didukung sebelum Internet Explorer 9), jadi saya memuat konten bersyarat saya. Ini sekarang berfungsi saat beralih mode browser di alat pengembang Internet Explorer 11.

El Kabong
sumber
Komentar bersyarat tidak bergantung pada skrip, atau kode pihak ketiga mana pun.
Walf
@ Setengah - benar, tetapi mereka juga tidak didukung di IE. Lihat di sini: msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx
El Kabong
3

Saya tidak melihatnya disebutkan di sini, tetapi dalam laporan bug ini dicatat bahwa, jika Anda mengubah pengaturan tampilan kompatibilitas, komentar bersyarat berfungsi seperti yang diharapkan. Begitu:

  1. Di IE11, klik "Tools"
  2. Kompatibilitas Lihat pengaturan
  3. Ketik URL dan klik Tambahkan

Sepertinya bekerja dengan baik sekarang di localhost saya. Saya belum menguji ini secara ekstensif tetapi mungkin itu akan membantu seseorang.

Hanya Biasa Saja
sumber
Tetapi pengunjung situs web Anda harus melakukan hal yang sama untuk mendapatkan hasil yang sama. Membuatnya tidak berguna.
paddotk
Iya. Tetapi ini untuk jika Anda menguji versi IE yang lebih lama melalui alat pengembang IE11. Jadi menggunakan IE11 tetapi berjalan sebagai IE8, komentar bersyarat tidak akan berfungsi. Untuk seseorang yang benar-benar menggunakan IE8, komentar bersyarat akan berfungsi. Mungkin ^ _ ^
Hanya Tinggi Biasa
1

Beberapa komentar bersyarat berfungsi seperti ' gt' dan ' lt', tetapi misalnya <!--[if IE 8]>tidak berfungsi. Hal ini tentunya merepotkan bagi pengembang yang ingin mencoba tampilan halaman web mereka di berbagai versi browser Internet Explorer, tetapi tidak semuanya merupakan berita buruk.

Meskipun komentar bersyarat tidak berfungsi, Anda masih dapat menguji tampilan halaman web Anda di setiap versi Internet Explorer dengan menambahkan stylesheet satu per satu: misalkan Anda mendapatkan lembar gaya untuk Firefox, Chrome, Internet Explorer 10, dan Internet Explorer 11 disebut ' screen.css', dan stylesheet lain HANYA untuk Internet Explorer 9 disebut ' screen-ie9.css' dan satu lagi HANYA untuk Internet Explorer 8 disebut ' screen-ie8.css'.

Untuk menguji halaman web Anda HANYA untuk Internet Explorer 9, Anda dapat melakukan ini:

<link rel="stylesheet" href="path/css/screen.css"     type="text/css" />
<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

dan di alat pengembang F12, bagian Emulasi, setel 'Mode Dokumen' ke '9' dan 'String agen pengguna' ke 'Internet Explorer 9'. Mode Dokumen adalah Standar yang digunakan Internet Explorer 9 dan string agen pengguna adalah browser itu sendiri.

PS: Saya berasumsi bahwa ' screen.css' adalah stylesheet dasar Anda yang merupakan alasan saya memanggilnya terlebih dahulu daripada "menimpa" Internet Explorer 9 nanti akan diperbaiki dengan memanggil 'screen-ie9.css ' kedua.

Dengan melakukan ini, Anda bisa "yakin" (saya harus menguji dengan VM untuk menulis kata 'yakin' tanpa tanda kutip) bahwa Anda sedang melihat halaman web Anda di browser Internet Explorer 9. Ketika Anda selesai menguji dan menata di Internet Explorer 9, dan Anda ingin menguji dengan Internet Explorer 8, Anda dapat dengan mudah melakukan trik yang sama dengan mengganti ini:

<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

dengan ini:

<link rel="stylesheet" href="path/css/screen-ie8.css" type="text/css" />

Jadi, ini hanya masalah MINOR ketidaknyamanan dari sisi Microsoft, TETAPI alat pengembang F12 baru menawarkan BANYAK fitur luar biasa, yang membuat ini bukan masalah besar.

Roben B
sumber