Почему Internet Explorer 11 не выполняет условные комментарии даже при эмуляции режима документа Internet Explorer 8?
Я использую новый Internet Explorer 11 инструменты разработчика для переключения режима документа на "8", но условные комментарии по-прежнему игнорируются, то есть они не разбираются должным образом и ведут себя как обычные комментарии. Таким образом, любой ссылочный файл внутри условного комментария не запрашивается/не загружается браузером.
Почему это происходит? Это баг?
Если вы думаете, что это действительно ошибка, которая должна быть исправлена, пожалуйста, войдите и скажите, что Вы тоже можете воспроизведите это в отчете об ошибке Microsoft, который сообщается для этой проблемы:
условные комментарии не работают при эмуляции режимов документа с помощью инструментов разработчика F12.
обновление: эта проблема была исправлена в упомянутом отчете об ошибке.
8 ответов:
по данным до
Jacob Rossi [MSFT]Это должно быть исправлено в обновлении 1 для IE11, выпущенный на прошлой неделе.
Это было опубликовано 22 апреля 2014 года.
при запуске нескольких тестов мне кажется, что это было исправлено, и все снова работает гладко для тестирования самого удивительного браузера, когда-либо созданного...Internet Explorer!
Я просто попытался использовать это в Internet Explorer 11 на Windows 7, чтобы убедиться, что мой используется HTML5 семантические элементы создавались для Internet Explorer 8 и ниже (через условные комментарии), и браузер просто игнорирует их. - _ -
эта функция отлично работала в Internet Explorer 10, и Microsoft просто пришлось возиться с этим, не так ли?
<!--[if lte IE 8]><script src="ie8-html5.js"></script><![endif]-->помимо этого, я на самом деле наслаждаясь 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 */ }
недавно я столкнулся с той же проблемой. Я также обнаружил, что некоторые условные комментарии работают:
gtиltработало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('<link rel="stylesheet" href="ie8.css" />'); }
У меня была та же проблема - это сводило меня с ума все утро. Я добавил 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 developer tools.
Я не видел, чтобы это упоминалось здесь, но в этом сообщить об ошибке следует отметить, что при изменении параметров представления совместимости условные комментарии работают должным образом. Итак:
- в IE11, нажмите на кнопку "Инструменты"
- параметры просмотра в режиме совместимости
- введите URL-адрес и нажмите кнопку Добавить
кажется, теперь работает нормально на моем localhost. Я не проверял это широко, но, возможно, это поможет кому-то.
некоторые из условных комментариев работают, такие как'
gt' и 'lt', но например<!--[if IE 8]>не работает. Это, безусловно, неудобно для разработчиков, которые хотят попробовать, как их веб-страницы выглядят на разных версиях браузеров Internet Explorer, но это не все плохие новости.хотя условные комментарии не работают, вы все равно можете проверить, как выглядит ваша веб-страница в каждой из версий Internet Explorer, добавляя таблицы стилей по одному: давайте скажем, у вас есть таблица стилей для Firefox, Chrome, Internet Explorer 10 и Internet Explorer 11 под названием '
screen.css', и еще одна таблица стилей только для Internet Explorer 9 называется'screen-ie9.css'и еще один только для Internet Explorer 8 называется'screen-ie8.css'.чтобы проверить свои веб-страницы только для Internet Explorer 9, вы можете сделать это:
<link rel="stylesheet" href="path/css/screen.css" type="text/css" /> <link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />и в разделе F12 developer tools, Emulation, установите "режим документа" на "9", а "строка агента пользователя" на "Internet Explorer 9". Режим документа является стандартным, который использует Internet Explorer 9, а строка агента пользователя-это сам браузер.
P. S: я предполагаю, что '
screen.css'является ли ваша базовая таблица стилей, по которой я называю ее первой, чем "перезапись" исправлений Internet Explorer 9 позже, позвонив'screen-ie9.css' второй.делая это, вы можете быть "уверены" (я должен проверить с виртуальными машинами, чтобы написать слово "уверен" без кавычек), что вы просматриваете свой веб-страница в браузере Internet Explorer 9. Когда вы закончите тестирование и стиль в Internet Explorer 9, и вы хотите протестировать с помощью Internet Explorer 8, вы можете легко сделать тот же трюк, заменив это:
<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />С этого:
<link rel="stylesheet" href="path/css/screen-ie8.css" type="text/css" />таким образом, это всего лишь вопрос незначительных неудобств со стороны Microsoft, но новые инструменты разработчиков F12 предлагают множество удивительных функций, что делает это не так уж и важно.
Comments