Проверка HTML 5 w3c - PullRequest
       14

Проверка HTML 5 w3c

23 голосов
/ 04 ноября 2011

Я проверил свой сайт, используя validator.w3.org

Сообщено о следующей ошибке:

Line 5, Column 67: Bad value X-UA-Compatible for attribute http-equiv on element meta.
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >

Если я не включу этот тег META, тогда все посетители IE9 увидят мой сайт в режиме Quirks, и я хочу предотвратить это.

Любая помощь будет принята с благодарностью!

Ответы [ 7 ]

12 голосов
/ 05 июня 2012

Та же проблема, но мое решение - добавить следующую строку в мой файл .htaccess:

Header set X-UA-Compatible "IE=edge"

Прекрасно работает для меня ...

12 голосов
/ 04 ноября 2011

Вместо этого вы всегда можете поместить параметр X-UA-Compatible в фактические заголовки HTTP.То, как вы это сделаете, зависит от того, какой веб-сервер вы используете, и какой серверной инфраструктуры, если таковая имеется, вы используете.

8 голосов
/ 04 ноября 2011

Вы просто должны будете принять тот факт, что если вам нужна поддержка IE, вам нужно будет отказаться от идеального балла проверки.

Хотя все в порядке, validity != quality

5 голосов
/ 21 ноября 2013

Решение очень простое, и тема может включать это легко в шаблонах функций просто откройте / шаблоны / ВАШ ШАБЛОН / warp / systems / themes / head.php

от

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

до

<!--[if IE]>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<![endif]-->
4 голосов
/ 26 декабря 2012

Для людей, использующих PHP, способ передать этот параметр через функцию заголовка в PHP:

header('X-UA-Compatible: IE=edge,chrome=1');

Вот сообщение с кодом + объяснение .

2 голосов
/ 21 октября 2014

Вы пытались наплевать на то, что валидаторы HTML говорят о вашем коде?Это обычно работает для меня.

2 голосов
/ 30 июня 2012

Для парней, использующих ASP.NET MVC

Один из вариантов - использовать фильтр действий на контроллерах / действиях. Это немного замедляет ответы от сервера, но я не знаю точных цифр. Но это чистый способ сделать это:

///
/// Represents an attribute that is used to add HTTP Headers to a Controller Action response.
///
public class HttpHeaderAttribute : ActionFilterAttribute
{
    ///
    /// Gets or sets the name of the HTTP Header.
    ///
    /// The name.
    public string Name { get; set; }

    ///
    /// Gets or sets the value of the HTTP Header.
    ///
    /// The value.
    public string Value { get; set; }

    ///
    /// Initializes a new instance of the  class.
    ///
    /// The name.
    /// The value.
    public HttpHeaderAttribute(string name, string value) {
        Name = name;
        Value = value;
    }

    public override void OnResultExecuted(ResultExecutedContext filterContext) {
        if(!filterContext.HttpContext.Response.Headers.AllKeys.Contains(Name, StringComparer.OrdinalIgnoreCase))
            filterContext.HttpContext.Response.AppendHeader(Name, Value);
        base.OnResultExecuted(filterContext);
    }
}

Однако самый лучший и чистый способ для меня - использовать web.config. Поместите этот код в элемент <system.webServer>:

<httpProtocol>
  <customHeaders>
    <!-- 
                            http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
                            Uncomment to serve cross-domain ajax requests

                            <add name="Access-Control-Allow-Origin" value="*" />
                            -->
    <!-- 
                            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 
                            -->
    <add name="X-UA-Compatible" value="IE=Edge,chrome=1" />
    <!-- 
                            Allow cookies to be set from iframes (for IE only)
                            If needed, uncomment and specify a path or regex in the Location directive 

                            <add name="P3P" value="policyref=&quot;/w3c/p3p.xml&quot;, CP=&quot;IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT&quot;" />
                            -->
    <!-- A little extra security (by obscurity) -->
    <remove name="X-Powered-By" />
  </customHeaders>
</httpProtocol>

Очевидно, это работает только в IIS7 +.

НТН

...