我有一个与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标签的存在一无所知,因此我们没有抱怨。
但我仍有一些疑问,所以我的问题就出现了:这实际上是解决这个问题的正确方法吗?还有更好的方法吗?
答案 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。因此,你甚至可以完全摆脱这段代码。