假设您在 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 代码引用的文档类型添加属性或其他内容?如果您使用自定义代码自定义文档类型,那么它会破坏页面的布局/ View /呈现吗?
--- 编辑 ---
可能有更好的方法可以在不使用条件注释的情况下处理这个问题,但我更感兴趣的是看看是否可以在不破坏页面的情况下破解文档类型。
最佳答案
您可以将属性添加到 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>
...
这允许,例如以这种方式过滤标签:$(".custom-page ul")
注意:我更改了第二行,否则除 IE 之外的所有浏览器都会得到两个开始的 html 标记。
关于文档类型的定制,html5 specifications对如何编写它有点严格,所以不,你不能在 doctype 中添加自定义属性。
无论如何,您可以使用 document.doctype
从 javascript 访问内容文档类型.
在此页面的控制台中尝试命令返回我 <!DOCTYPE html>
关于javascript - 可以向 HTML5 文档类型添加额外数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21317447/