Плохое значение 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 107

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-совместимый раз и навсегда

надеюсь, что это помогает!

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

смотрите эту статью для возможного исправления

.. может ли это быть хорошим ответом?

установить 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]-->