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
并返回检查systemId
或publicId
。
用于运行测试的脚本: http : //jsfiddle.net/Cwb8q/
您可以使用jQuery.support对象检查特定的浏览器function(例如BoxModel)并对其进行处理。
尝试使用属性“this.document.doctype”如果未声明,则结果为null,否则,结果将是具有doctype的对象。
document.doctype
和document.firstChild
似乎都返回了doctype,但我不知道它们有多广泛支持。
你可以尝试:
var doc = $(“DOCTYPE”);