HTML5元标记& W3验证器

时间:2013-04-23 17:38:31

标签: html5 validation

我有一个与HTLM5元标记和W3 Validator相关的问题。

众所周知,有几个meta标签,Validator似乎不喜欢。例如:

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

到目前为止,我已经使用了这个技巧:

var meta_elem = document.createElement('meta');
meta_elem.setAttribute('http-equiv', 'X-UA-Compatible');
meta_elem.setAttribute('content', 'IE=edge,chrome=1');
document.getElementsByTagName('head')[0].appendChild(meta_elem);

现在它似乎正在服务于它的目的。 W3 Validator对meta标签的存在一无所知,因此我们没有抱怨。

但我仍有一些疑问,所以我的问题就出现了:这实际上是解决这个问题的正确方法吗?还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

首先,您不应该根据W3C验证器做出决定。它永远不会给你完整的图片。它应该仅用于跟踪语法错误(即linting)。

提出问题,这不是一个错误。 X-前缀表示这是特定于供应商的,在这种情况下,它是针对IE(意味着以最佳版本呈现),以及针对Chrome Frame(1表示开启)。

这不是无效的。

如果验证错误让你如此烦恼,那么你可以使用以下技术来达到同样的目的,

<强> 1。使用PHP设置HTTP标头

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

<强> 2。使用.htaccess文件

Header set X-UA-Compatible "IE=Edge,chrome=1"

第3。使用IIS web.config

<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="X-UA-Compatible" value="IE=Edge,chrome=1" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

<强> 4。使用C#

Response.AppendHeader("X-UA-Compatible", "IE=edge,chrome=1");
  

谷歌的最新消息称他们将从2014年开始停止使用谷歌Chrome Frame。因此,你甚至可以完全摆脱这段代码。