IE11 не реагирует на условные комментарии [дубликат]

Также, если вы используете сторонние библиотеки, убедитесь, что у вас есть правильные 32/64 битные файлы

17
задан TheSnooker 21 October 2013 в 19:30
поделиться

5 ответов

IE 10 не поддерживает условные операторы.

Условные утверждения в Internet Explorer 10. . Он будет обрабатывать условные комментарии как обычные комментарии HTML и полностью игнорироваться.

Вместо обнаружения браузера используйте библиотеку обнаружения функций, такую ​​как Modernizr .

нашел решение на impressivewebs в этом комментарии :

Вот демоверсия

Решение:

if (Function('/*@cc_on return document.documentMode===10@*/')()) {
    alert('IE 10');
} else {
    alert('Not IE 10');
}

Он

  • не нуждается в условных комментариях,
  • работает, даже если комментарий отключен сжатие / обработка;
  • no ie10 класс добавлен в Internet & nbsp; 11;
  • скорее работает так, как предполагалось, с Internet & nbsp; Explorer & nbsp; 11 работает в Internet & nbsp; Explorer & nbsp; 10 режиме совместимости ;
  • не нуждается в автономном теге скрипта (его можно просто добавить в другой код JavaScript в голове).
  • не нуждается в jQuery для тестирования
16
ответ дан Zaheer Ahmed 31 August 2018 в 20:40
поделиться

IE 10, 11 и вверх больше не поддерживают условные комментарии.

См. этот ответ: https://stackoverflow.com/a/22187600/1498739

2
ответ дан Community 31 August 2018 в 20:40
поделиться

Попробуйте добавить следующий метатег в верхней части страницы, чтобы выбрать поведение Internet Explorer 9:

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

Это связано с тем, что условные комментарии были удалены в стандартах и ​​режимах браузера Internet Explorer 10 для улучшенная совместимость и соответствие HTML5. Это означает, что условные комментарии теперь рассматриваются как обычные комментарии, как и в других браузерах. Это изменение может повлиять на страницы, написанные исключительно для Windows Internet Explorer или на страницах, использующих обход браузера для изменения их поведения в Internet Explorer.

1
ответ дан Ian 31 August 2018 в 20:40
поделиться

Я удивлен, что никто не добавил в css-единственное решение. Если вы просто хотите использовать css, используйте инструкцию типа:

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* Put your IE-only styles here. Works for IS 10 & IE 11*/
}

Таким образом, вам не нужно полагаться на jquery или любую разметку html. Просто опубликуйте его в css, и вам хорошо идти.

Теперь, это взломать? Вероятно. Это зависит от использования высококонтрастного тега microsoft, но поскольку ни один другой браузер не использует метку ms, тогда вам должно быть хорошо идти.

Наконец, просмотрите эти страницы для получения дополнительной информации:

Сообщение в блоге

MS Сайт на контрастной теге

18
ответ дан Maximus 31 August 2018 в 20:40
поделиться

IE 10 потерял условные комментарии.

Вы можете сделать что-то подобное в javascript:

if ($.browser.msie && $.browser.version === 10) {
    // stuff here (like adding an IE10 class to the body or html tag
}
3
ответ дан sclarson 31 August 2018 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: