Плохое значение X-UA-совместимо для атрибута http-equiv на элементе meta
я использовал то же самое meta
что используется шаблон HTML5, и валидатор W3C HTML жалуется:
плохое значение X-UA-совместимо для атрибута http-equiv на элементе meta.
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
что не так с этим meta
тег?
8 ответов
либо X-UA-совместимый не является" стандартным "HTML (FSVO "standard", который включает в себя появление на общедоступная страница wiki ссылка на спецификацию) или валидатор не в курсе текущего состояния этой Вики.
на момент написания (20130326) X-UA-Compatible появляется на странице wiki в разделе, в котором говорится: "следующие предлагаемые расширения еще не соответствуют всем требованиям регистрации в спецификации HTML и поэтому еще не разрешен в действительных документах."Таким образом, валидатор правильно отклоняет это значение.
Если вы хотите сделать его технически допустимым (все любят видеть зеленый favicon) без каких-либо функций, вы должны иметь возможность просто обернуть его в тег "if IE".
<!--[if IE]><meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'><![endif]-->
одним из возможных решений является реализация fix server-side в заголовке, Как предложено в это хорошая рецензия Аарон Лейтон. (Все кредиты должны пойти к нему, и я перефразирую, а не заниматься плагиатом...)
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
" когда Internet Explorer пересекает эту строку, он изменит движок, который используется для первого кадра Chrome, если плагин установлен, а затем для Edge (самый высокий поддерживаемый режим документа броузер.)"
шаги:
- исправить проверку страницы – это достигается путем простого удаления тега
- скорость рендеринга-вместо того, чтобы ждать браузера, чтобы увидеть тег, а затем изменить режимы, мы отправим правильный режим вперед в качестве заголовка ответа
- убедитесь, что мы показываем только исправление для Internet Explorer – мы просто будем использовать некоторое обнаружение браузера на стороне сервера и только отправить его Т. е.
добавить заголовок в PHP мы можем просто добавить это к странице:
if (isset($_SERVER['HTTP_USER_AGENT']) &&
(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
header('X-UA-Compatible: IE=edge,chrome=1');
Или вы можете добавить его к своему .файл htaccess вот так:
<FilesMatch "\.(htm|html|php)$">
<IfModule mod_headers.c>
BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
</IfModule>
</FilesMatch>
Ссылка на оригинальную статью, проверьте комментарии для возможных предостережений. Также включает реализацию для C#.
исправить плохое значение X-UA-совместимо раз и навсегда
надеюсь, что это помогает!
.. может, это хороший ответ?
установить HTTP-заголовок с PHP:
Это не моя работа, но я надеюсь, что это полезно для других тоже.
Если вы загружаете / создаете код src валидатора, вы можете добавить поддержку самостоятельно.
добавьте в файл, например html5-meta-X-UA-Compatible.rnc
) затем включите его в html5full.rnc
.
Я сделал это, и он отлично работает для проверки.
meta.http-equiv.X-UA-Compatible.elem =
element meta { meta.inner & meta.http-equiv.X-UA-Compatible.attrs }
meta.http-equiv.X-UA-Compatible.attrs =
( common.attrs.basic
& common.attrs.i18n
& common.attrs.present
& common.attrs.other
& meta.http-equiv.attrs.http-equiv.X-UA-Compatible
& meta.http-equiv.attrs.content.X-UA-Compatible
& ( common.attrs.aria.role.presentation
| common.attrs.aria.role.menuitem
)?
)
meta.http-equiv.attrs.http-equiv.X-UA-Compatible = attribute http-equiv {
xsd:string {
pattern = "X-UA-Compatible"
}
}
meta.http-equiv.attrs.content.X-UA-Compatible = attribute content {
xsd:string {
pattern = "IE=((edge)|(EmulateIE(7|8|9|10))|7|8|9|10|11)(,chrome=(1|0))?"
}
}
common.elem.metadata |= meta.http-equiv.X-UA-Compatible.elem
просьба удалить ,chrome=1
из мета-тега он будет работать нормально. С валидатором:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
У меня была такая же проблема, и добавление и окружение всей этой строки исправили ситуацию.
<!--[if IE]><meta http-equiv="x-ua-compatible" content="IE=9" /><![endif]-->