jQuery 检查文档类型

标签 jquery doctype

If doctype is <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    // do something
else 
    // do something

怎么做?

谢谢。

最佳答案

是的,我在 IE、Chrome、Firefox 和 Opera 中测试过之后回来了。 IE 将通过以下代码为您提供完整的文档类型:

var doctype = document.documentElement.previousSibling.nodeValue;
// -> DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

不幸的是,这可能是不正确的,因为 Chrome、Firefox 和 Opera 对 nodeValue 返回 null。由于它们都不支持 outerHTML,我想不出一种方法来获取完整的文档类型,但您可以获取各个部分:

 var doctype = document.documentElement.previousSibling;

 console.log(doctype.systemId)
 // -> http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd

 console.log(doctype.publicId)
 // -> -//W3C//DTD XHTML 1.0 Strict//EN

但是,这在 IE 中不起作用,但解析它们并不会太困难。您可以使用 if 语句检查 nodeValue 是否不 null 并回退到检查 systemIdpublicId.

用于运行测试的脚本:http://jsfiddle.net/Cwb8q/

关于jQuery 检查文档类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3043820/

相关文章:

javascript - 如何从日期范围选择器中获取两个日期?

javascript - jQuery:在已选元素中选择一个元素

html - Quirks 模式和 DOCTYPE 兼容性

c# - DocType 标记上的 XML 反序列化失败

html - 为什么 DOCTYPE 会破坏我的页面?

javascript - 使用表行索引填充 Symfony 表单行

javascript - 选择 EditorFor MVC C# View 上的所有复选框

javascript - 如何制作 100% 宽度垂直居中对齐的 html5 视频

css - 网站默认以怪异模式打开

html - 在 DTD 浏览器中的 ATTLIST 声明后呈现自定义字符