这是一个简单的小提琴:
alert(document.doctype.valueOf())
[object DocumentType]
正如预期的那样,它会产生。
但是,当我按 F12 并document.doctype.valueOf()
在 JavaScript 控制台(Chrome、IE11)中输入时,我看到:
<!DOCTYPE html>
为什么会出现差异,以及它在控制台模式下实际显示什么属性(如果有)?
[更新]document.doctype.outerHTML
当我在@BlueSkies 的答案的评论中提到它在 IE11 之前一直有效时,我不太正确。就我而言,我在 C# 应用程序中托管了一个 WinForms 版本的IEWebBrowser
控件。我刚刚发现它在 IE11 中也是这样工作的:
dynamic domDocument = webBrowser.Document.DomDocument;
// this shows '<!DOCTYPE html PUBLIC "" "">'
string doctype = domDocument.doctype.outerHTML;
MessageBox.Show(doctype);
// this shows 'undefined'
domDocument.parentWindow.execScript("alert(document.doctype.outerHTML)");
显然,它可以从外部工作,但不能从页面内部工作。有趣,但不可靠。我想我document.doctype.outerHTML
什至不应该在这个基于 IE 的应用程序中使用。