jQuery检查doctype

If doctype is  // do something else // do something 

如何?

谢谢。

是的,我在IE,Chrome,Firefox和Opera中测试后回来了。 IE将使用以下代码为您提供完整的doctype:

 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 ,我想不出一种获取完整doctype的方法,但是你可以获得单独的部分:

  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.support对象检查特定的浏览器function(例如BoxModel)并对其进行处理。

尝试使用属性“this.document.doctype”如果未声明,则结果为null,否则,结果将是具有doctype的对象。

document.doctypedocument.firstChild似乎都返回了doctype,但我不知道它们有多广泛支持。

你可以尝试:

var doc = $(“DOCTYPE”);