Internet Explorer 10 більше не намагається читати умовні коментарі. Це означає, що він буде ставитись до умовних коментарів так само, як і будь-який інший браузер: як звичайні коментарі HTML, мав на увазі цілком ігноруватися. Якщо розглядати розмітку, подану у запитанні, як приклад, усі браузери, включаючи IE10, повністю ігнорують частини коментарів, виділені сірим кольором. Стандарт HTML5 не згадує про синтаксис умовного коментаря, і саме тому вони вирішили припинити його підтримувати в IE10.
Зауважте, що умовна компіляція в JScript все ще підтримується, як показано в коментарях, а також останніх відповідях. У фінальному релізі це теж не піде, на відміну відjQuery.browser
. І звичайно, само собою зрозуміло, що нюхання користувачем-агентом залишається таким же крихким, як ніколи, і ніколи не повинно використовуватися ні за яких обставин.
Якщо ви дійсно повинні орієнтуватися на IE10, або використовуйте умовну компіляцію, яка може все-таки побачити підтримку в найближчому майбутньому, або - якщо ви зможете допомогти їй - використовуйте бібліотеку виявлення функцій, таку як Modernizr замість (або спільно з) виявлення браузера. Якщо у вашому випадку використання не вимагається запису або розміщення IE10 на стороні сервера, обнюхування агентом користувача буде більше головним болем, ніж можливим варіантом.
Звучить досить громіздко, але пам’ятайте, що як сучасний веб-переглядач, який дуже відповідає сучасним веб-стандартам 1 , припускаючи, що ви написали сумісний код, який відповідає стандартам, вам не потрібно було відкладати спеціальний код для IE10, якщо це абсолютно не потрібно, тобто він повинен нагадувати інші браузери за поведінкою та візуалізацією. 2 І це звучить надумано, враховуючи історію IE, але скільки разів ви очікували, що Firefox чи Chrome поводяться так само, лише щоб зіткнутися з розчаруванням?
- Firefox не підтримував
box-sizing
нефіксований роками
- Firefox історично мав дивні контури , і це теж було роками
- Firefox відмовляється поводитись розумно, якщо мова йде про позиціоновані комірки таблиці , посилаючись на невизначене поведінку як виправдання, в той час як інші браузери, здається, справляються чудово
- Safari і Chrome є багато з проблеми з деякими CSS селекторами , іноді з виправленнями , які дійсно приймають вас до добрих днях IE5, IE6 та IE7
- Здається, Chrome має багато проблем у відділі перефарбовування взагалі, наприклад, неправильне поновлення макетів, коли оновлені стилі медіа; здається, що половину помилок Chrome можна вирішити просто та лише змусивши перефарбувати, знову ж таки, на рівні IE5 / 6/7
- Відомо, що декілька штамів WebKit відверто брешуть про підтримку певних функцій, тобто вони фактично перемагають механізми виявлення особливостей
Якщо ви робите є законні підстави призначатися певні браузери, всі засоби нюхати їх з іншими інструментами , наданих вам. Я просто кажу, що вам сьогодні буде набагато важче знайти таку причину, ніж раніше, і це справді просто не те, на що можна покластися.
1 Не тільки IE10, але і IE9, і навіть IE8, який обробляє більшість зрілих стандартів CSS2.1 набагато краще, ніж Chrome, просто тому, що IE8 був настільки орієнтований на відповідність стандартам (в той час CSS2.1 вже був досить стабільним з лише незначними відмінностями з сьогоднішньої рекомендації), хоча Chrome здається трохи більше, ніж наполовину відшліфованою демонстрацією технологій передових псевдостандартів.
2 І я можу бути упередженим, коли говорю це, але це точно так, як це робить пекло. Якщо ваш код працює в інших браузерах, але не в IE, шанси на те, що це проблема з вашим власним кодом, а не IE10, набагато кращі в порівнянні, скажімо, 3 роки тому з попередніми версіями IE. Знову ж таки, я можу бути упередженим, але будьмо чесними: чи не ви теж? Просто подивіться на ваші коментарі.