Как работать с метаэлементами, которые не проверяются в HTML5? - PullRequest
5 голосов
/ 16 августа 2010

В HTML5 некоторые метаэлементы не проверяются (пока?), Например:

<meta http-equiv="x-ua-compatible" content="ie=emulateie7;chrome=1">
<meta http-equiv="imagetoolbar" content="no">

Являются ли Условные комментарии подходящим решением здесь, соответственно.будут ли метаэлементы работать должным образом?

<!--[if IE]><meta http-equiv="x-ua-compatible" content="ie=emulateie7;chrome=1"><![endif]-->
<!--[if lt IE 7]><meta http-equiv="imagetoolbar" content="no"><![endif]-->

Использование файла .htaccess вместо метаэлементов (к сожалению, это не всегда возможно), будет ли это правильный путь?

<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
  # BrowserMatch MSIE ie OR?
    BrowserMatch MSIE emulate_ie7
  # Header set X-UA-Compatible "IE=EmulateIE7" env=ie OR?
    Header set X-UA-Compatible "IE=EmulateIE7" env=emulate_ie7
    BrowserMatch chromeframe gcf
    Header append X-UA-Compatible "chrome=1" env=gcf
  </IfModule>
</IfModule>

Спасибо!

Ответы [ 2 ]

5 голосов
/ 23 апреля 2011

Лично для тега "x-ua-совместимый" я выбрал директиву .htaccess. Я следовал шаблону html5boilerplate :

# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------

# Force the latest IE version, in various cases when it may fall back to IE7 mode
#  github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it's installed for a better experience for the poor IE folk

<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    BrowserMatch MSIE ie
    Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
  </IfModule>
</IfModule>

<IfModule mod_headers.c>
# Because X-UA-Compatible isn't sent to non-IE (to save header bytes),
#   We need to inform proxies that content changes based on UA
  Header append Vary User-Agent
# Cache control is set only if mod_headers is enabled, so that's unncessary to declare
</IfModule>
0 голосов
/ 17 августа 2010

Вы можете зарегистрировать дополнительные директивы прагмы :

Расширения предопределенного набора директив прагмы могут, при определенных условиях, быть зарегистрированы на странице WHATWG Wiki PragmaExtensions .

Затем для их распознавания требуется проверка соответствия:

Проверщики соответствия должны использовать информацию, представленную на странице WHATWG Wiki PragmaExtensions, чтобы установить, разрешено или нет значение: значения, определенные в этой спецификации или перечисленные на вышеупомянутой странице, должны быть приняты, тогда как значения, не указанные ни в этой спецификации, ни на вышеупомянутой странице должен быть отклонен как недействительный.

Хотя это может быть трудной работой, не знаю, есть ли какая-либо причина, почему эти заголовки не были перечислены ранее, но я думаю, вы узнаете, если попробуете:)

Ваш .htaccess выглядит нормально в соответствии с MS документами , могут быть некоторые различия в зависимости от того, на какой версии Apache вы работаете, но, вероятно, лучший способ проверить это попробовать и посмотреть.

...