javascript - 可以向 HTML5 文档类型添加额外数据

标签 javascript html 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 代码引用的文档类型添加属性或其他内容?如果您使用自定义代码自定义文档类型,那么它会破坏页面的布局/ 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/

相关文章:

javascript - 通过 Javascript 禁用文本字段

javascript - Html Canvas 自由变换

javascript - 带有拳头的 Knockoutjs 无法在样式属性中放置绑定(bind)

java - 如何查找和替换 XML 中的属性值

javascript - 支持动态饼图的图形/图表?

javascript - YII2 依赖字段

html - 单击子菜单时 float 菜单跳转到页面顶部

php - 使用 laravel 更新联结表

jquery - 在动态插入的元素中查找行高

dom - 如何使用 Dart 将 SVG 元素保存到静态文件?