Плохое значение 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-Compatible не является "стандартным" HTML (FSVO "standard", который включает в себя появление на общедоступная страница Вики ссылается на спецификацию) или валидатор не обновлен с текущим статусом этой Вики.
на момент написания статьи (20130326) X-UA-Compatible появляется на странице wiki в разделе, в котором говорится: "следующие предлагаемые расширения еще не соответствуют всем требованиям регистрации в спецификации HTML и поэтому еще не разрешен в действительных документах."Таким образом, валидатор правильно отклоняет это значение.
Если вы хотите сделать его технически допустимым (все любят видеть зеленый фавикон) без каких-либо функций, вы должны быть в состоянии просто обернуть его в тег "if IE".
<!--[if IE]><meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'><![endif]-->
одним из возможных решений является реализация исправления на стороне сервера в заголовке, как это предлагается в это хорошая рецензия Аарон Лейтон. (Все заслуги должны идти к нему, и я буду перефразировать, а не плагиат...)
<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