可以向HTML5 doctype添加额外数据

时间:2014-01-23 19:20:40

标签: javascript html5 dom doctype

假设您在HTML文档的顶部使用了一系列IE条件注释标记:

<!--[if IE 6]><html class="no-js ie6" lang="en" ><![endif]-->
<!--[if IE 7]><html class="no-js ie7" lang="en" ><!--<![endif]-->
<!--[if IE 8]><html class="no-js ie8" lang="en" ><![endif]-->
<!--[if gt IE 8]><!--><html class="no-js ie9" lang="en" ><!--<![endif]-->

并且您希望向页面添加额外的数据,但您不希望使用冗余数据填充每个特定的HTML元素。是否可以向您可以从JS代码引用的doctype添加属性或其他内容?如果您使用自定义代码自定义文档类型,如果您这样做,那么它会破坏页面的布局/视图/呈现吗?

---编辑---

在不使用条件注释的情况下,可能有更好的方法来解决这个问题,但我更感兴趣的是看看doctype是否可以在不破坏页面的情况下被黑客攻击。

1 个答案:

答案 0 :(得分:1)

您可以向body标记添加属性:

<!--[if IE 6]><html class="no-js ie6" lang="en" ><![endif]-->
<!--[if IE 7]><html class="no-js ie7" lang="en" ><![endif]-->
<!--[if IE 8]><html class="no-js ie8" lang="en" ><![endif]-->
<!--[if gt IE 8]><!--><html class="no-js ie9" lang="en" ><!--<![endif]-->

<body class="custom-page">
</body>

...

这允许,例如。以这种方式过滤代码:{​​{1}}

注意:我更改了第二行,否则除了IE之外的所有浏览器都会获得两个打开的html标记。

关于doctype的自定义,html5 specifications对于如何编写它有点严格,所以不,你不能在doctype中添加自定义属性。

无论如何,您可以使用$(".custom-page ul")从javascript访问内容doctype。 在此页面的控制台中尝试该命令会返回document.doctype