Internet Explorer 10 больше не пытается читать условные комментарии. Это означает, что он будет обрабатывать условные комментарии так же, как и любой другой браузер: как обычные комментарии HTML, которые должны полностью игнорироваться. Рассматривая разметку, приведенную в вопросе в качестве примера, все браузеры, включая IE10, будут полностью игнорировать части комментариев, выделенные серым цветом. Стандарт HTML5 не упоминает синтаксис условных комментариев, и именно поэтому они решили прекратить поддерживать его в IE10.
Однако обратите внимание, что условная компиляция в JScript по-прежнему поддерживается, как показано в комментариях, а также в более поздних ответах. Это не уйдет в финальной версии, в отличие отjQuery.browser
. И, конечно, само собой разумеется, что сниффинг пользовательского агента остается таким же хрупким, как и всегда, и никогда не должен использоваться ни при каких обстоятельствах.
Если вам действительно нужно настроить таргетинг на IE10, либо используйте условную компиляцию, которая, возможно, все еще увидит поддержку в ближайшем будущем, либо - если вы можете помочь - используйте библиотеку обнаружения функций, такую как Modernizr, вместо (или в сочетании с) обнаружения в браузере. Если ваш сценарий использования не требует noscript или размещения 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. Опять же, я могу быть предвзятым, но давайте будем честными: не так ли? Просто посмотрите на ваши комментарии.