HTML5 元标记和 W3 验证器

标签 html validation

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

众所周知,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 对元标记的存在一无所知,因此我们不会收到任何提示。

但我还是有些疑惑,所以我的问题来了:这真的是解决问题的正确方法吗?有没有更好的办法?

最佳答案

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

谈到这个问题,这并不是一个真正的错误。 X- 前缀表示这是特定于供应商的,在本例中它适用于 IE(表示以最佳版本呈现)和 Chrome Frame(1 表示打开)。

这不是无效的。

如果验证错误困扰你这么多,那么你可以使用以下技术来达到同样的目的,

<强>1。使用 PHP 设置 HTTP header

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");

Latest news from Google says that they will discontinue the use of Google Chrome Frame starting 2014. Hence, you can even do away from this piece of code completely.

关于HTML5 元标记和 W3 验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16175706/

相关文章:

ruby-on-rails - Rails 表单验证条件绕过

javascript - 在 Javascript 中检查麦克风音量

javascript - Javascript/HTML 中的罗马数字到数字的转换

javascript - 如何在主文本框值中显示最终结果

java - 如何在java中正确验证PNG header ?

javascript - 如何实时比较 2 个表单输入

asp.net - 如何使用Customvalidator检查号码

html - 相对定位的溢出 flex 容器的全宽

html - Canvas的形状识别转化为功能

javax.validation.ConstraintDefinitionException : HV000074