Почему Internet Explorer 11 не соблюдает условные комментарии даже при эмуляции режима документа Internet Explorer 8?

Я использую новые инструменты для разработчиков Internet Explorer 11, чтобы переключить режим документа на «8», но условные комментарии по-прежнему игнорируются, то есть они неправильно обрабатываются и ведут себя как обычные комментарии. Поэтому любой ссылочный файл внутри условного комментария не запрашивается / не загружается браузером.

Почему это происходит? Это ошибка?

Если вы считаете, что это действительно ошибка, которая должна быть исправлена, пожалуйста, зайдите и скажите, что вы тоже можете воспроизвести это в отчете об ошибке Microsoft, который сообщается по этой проблеме:
Условные комментарии не работают при эмуляции режимов документа с помощью F12 Developer Tools .

Обновление: эта проблема была зафиксирована в указанном отчете об ошибке.

По словам Jacob Rossi [MSFT]

Это должно быть исправлено в обновлении 1 для IE11, выпущенном на прошлой неделе .

Это было опубликовано 22 апреля 2014 года.

При запуске нескольких тестов я обнаружил, что это было исправлено, и все работает плавно снова для тестирования самого удивительного браузера, когда-либо созданного … Internet Explorer!

Я просто попытался использовать это в Internet Explorer 11 в Windows 7, чтобы убедиться, что мои используемые семантические элементы HTML5 создаются для Internet Explorer 8 и ниже (через условные комментарии), и браузер просто игнорирует их. -_-

Эта функция отлично работала в Internet Explorer 10 , и Microsoft просто пришлось возиться с ней, не так ли?

  

Помимо этого, я действительно пользуюсь Internet Explorer, что делает изменения.

Это сработало для меня и кажется самым элегантным / легким решением ( Internet Explorer 10 и Internet Explorer 11, я думаю, это единственные браузеры, которые поддерживают -ms-high-contract ):

 @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { /* IE10+ specific styles go here */ } 

Недавно я столкнулся с той же проблемой. Я также обнаружил, что некоторые условные комментарии работают:

  • и он работал нормально
  • gte и lte никогда не работал

Таким образом, одним из возможных решений было бы изменение условных операторов для использования операторов gt и lt .

Другим вариантом, который я нашел более полезным, было использование службы, такой как browserstack .

У меня есть другое решение для этого.

Internet Explorer 11 с включенным режимом совместимости Internet Explorer 8 содержит строку «MSIE 8.0», поэтому:

(Пример PHP)

 if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0') !== false) { $head[] = sprintf(''); } 

У меня была одна и та же проблема – все это заводило меня орехами. Я добавил Modernizr , и я выбрал все варианты, в том числе yepnope.js.

Итак, теперь мой тест выглядит так:

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

В этом случае я тестирую canvas (который не поддерживается до Internet Explorer 9), поэтому я загружаю свой условный контент. Это теперь работает при переключении режимов браузера в средствах разработки Internet Explorer 11.

Я не видел, чтобы это упоминалось здесь, но в этом отчете об ошибке отмечается, что если вы измените настройки представления совместимости, условные комментарии будут работать как ожидалось. Так:

  1. В IE11 нажмите «Инструменты»,
  2. Параметры просмотра совместимости
  3. Введите URL-адрес и нажмите Добавить.

Кажется, сейчас работает на моем локальном хосте. Я не тестировал это широко, но, возможно, это поможет кому-то.

Некоторые условные комментарии работают, например, « gt » и « lt », но, например,

Давайте будем гением компьютера.