假设您在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是否可以在不破坏页面的情况下被黑客攻击。
答案 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