jQuery检查doctype 如果doctype为 //做点什么 其他的 //做点什么
怎么做jQuery检查doctype 如果doctype为 //做点什么 其他的 //做点什么,jquery,doctype,Jquery,Doctype,怎么做 谢谢。您可以使用该对象来检查特定的浏览器功能(例如BoxModel)并对其进行操作。好的,我在IE、Chrome、Firefox和Opera中测试后回来了。IE将为您提供完整的doctype,其中包含以下代码: If doctype is <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> // do something else // do something 不幸的是,这可能是
谢谢。您可以使用该对象来检查特定的浏览器功能(例如BoxModel)并对其进行操作。好的,我在IE、Chrome、Firefox和Opera中测试后回来了。IE将为您提供完整的doctype,其中包含以下代码:
If doctype is <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
// do something
else
// do something
不幸的是,这可能是错误的,因为Chrome、Firefox和Opera为nodeValue
返回null
。由于它们都不支持outerHTML
,因此我想不出一种方法来获取完整的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"
然而,这在IE中不起作用,但解析这些内容也不会太困难。您可以使用if
语句检查nodeValue
是否为null
,然后返回到检查systemId
或publicId
用于运行测试的脚本:您可以尝试:
var doc=$(“DOCTYPE”) 尝试使用属性“this.document.doctype”
如果未声明,结果将为null,否则,结果将是具有doctype的对象。
document.doctype
和document.firstChild
似乎都返回doctype,但我不知道它们的支持程度如何。检查实际功能(而不是公布的功能)这确实是保持头脑清醒的唯一方法。出于好奇:试试$(document.sibbins()代码>->ups@jAndy:我在Chrome中出错$(document.documentElement).sides()
没有错误,但是结果的头部没有包含doctype。我也收到一个错误,那就是“ups”部分。要么雷西格先生忘了检查,要么他只是认为这种方法毫无用处,没有人会尝试:)@jAndy:我认为这可能是两者的结合,他可能没有想到。这不起作用。使用$('DOCTYPE')
始终返回[]
,并正确包含感叹号,即写入$('!DOCTYPE')
,会导致语法错误:错误:语法错误,无法识别的表达式:!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