此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Document

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

* Some parts of this feature may have varying levels of support.

Document 接口表示任何在浏览器中载入的 Web 页面,并作为 Web 页面内容的入口,也就是 DOM 树

DOM 树包含了像 <body><table> 这样的元素,以及大量其他元素。它向文档本身提供了全局操作功能,能解决如何获取页面的 URL,如何在文档中创建一个新的元素这样的问题。

EventTarget Node Document

Document 接口描述了任何类型的文档的通用属性与方法。根据不同的文档类型(例如 HTMLXML、SVG……),还有更多可用的 API:使用 "text/html" 作为内容类型的 HTML 文档,还实现了 HTMLDocument 接口,而 XML 和 SVG 文档则实现了 XMLDocument 接口。

构造函数

Document()

创建一个新的 Document 对象。

实例属性

此接口还继承了 NodeEventTarget 接口。

Document.activeElement 只读

返回目前处于聚焦状态的 Element

Document.activeViewTransition 只读

返回一个表示当前在文档上活动的视图转换ViewTransition 实例,如果没有活动的视图转换则返回 null

Document.adoptedStyleSheets

添加用于构造文档样式表的数组。这些样式表也可与同一文档的影子 DOM 子树共享。

Document.body

返回当前文档的 <body><frameset> 节点。

Document.characterSet 只读

返回文档正在使用的字符集。

Document.childElementCount 只读

返回当前文档的子元素数量。

Document.children 只读

返回当前文档的子元素。

Document.compatMode 只读

指示文档是否以怪异模式(quirks)或严格模式(strict)渲染。

Document.contentType 只读

根据当前文档的 MIME 标头,返回其内容类型(Content-Type)。

Document.currentScript 只读

返回目前正在处理且不是 JavaScript 模块<script> 元素。

Document.doctype 只读

返回当前文档的文档类型定义(Document Type Definition,DTD)。

Document.documentElement 只读

返回当前文档的一个直接子节点元素。对于 HTML 文档,一般为代表该文档的 <html> 元素的 HTMLHtmlElement 对象。

Document.documentURI 只读

返回文档的位置(字符串形式)。

Document.embeds 只读

返回包含文档中所有嵌入式元素 <embed>HTMLCollection

Document.featurePolicy 实验性 只读

返回表示应用于文档的特性策略的 FeaturePolicy 接口。

Document.firstElementChild 只读

返回当前文档的第一个子元素。

Document.fonts

返回当前文档的 FontFaceSet 接口。

Document.forms 只读

返回包含文档中所有表单元素 <form>HTMLCollection

Document.fragmentDirective 只读

返回当前文档的 FragmentDirective

Document.fullscreenElement 只读

返回文档中正处于全屏模式的元素。

Document.head 只读

返回当前文档的 <head> 元素。

Document.hidden 只读

返回一个表明当前页面是否隐藏的布尔值。

Document.images 只读

返回包含文档中所有图片的 HTMLCollection

Document.implementation 只读

返回与当前文档相关联的 DOM 实现。

Document.lastElementChild 只读

返回当前文档的最后一个子元素。

返回包含文档中所有超链接的 HTMLCollection

Document.pictureInPictureElement 只读

返回文档中正处于画中画模式的元素

Document.pictureInPictureEnabled 只读

若画中画特性可用,则返回 true

Document.plugins 只读

返回一个包含可用插件的 HTMLCollection

Document.pointerLockElement 只读

当指针被锁定时,返回鼠标事件的目标的元素集合。若锁定正处于等待状态、指针已被解锁,或是目标正处于另一个文档中,则返回 null

Document.prerendering 只读 实验性

返回一个表示文档当前是否处于预渲染过程(通过推测规则 API 启动)中的布尔值。

Document.scripts 只读

返回包含文档中所有的 <script> 元素的 HTMLCollection

Document.scrollingElement 只读

返回对用于滚动文档的元素的引用。

Document.styleSheets 只读

返回一个包含显式链接或嵌入到文档中的 CSSStyleSheet 对象的 StyleSheetList

Document.timeline 只读

返回一个在页面加载时自动创建的特殊 DocumentTimeline 实例。

Document.visibilityState 只读

返回一个表明当前文档的可见性的字符串(string)。可能的取值有 visiblehiddenprerenderunloaded

HTMLDocument 的扩展

HTML 文档的 Document 接口继承了 HTMLDocument 接口,或为文档进行了扩展:

Document.cookie

返回一个使用分号分隔的 cookie 列表,或设置单个 cookie。

Document.defaultView 只读

返回一个对 window 对象的引用。

Document.designMode

获取或设置编辑整个文档的能力。

Document.dir

获取或设置文档的文字方向(rtl 或 ltr)。

Document.fullscreenEnabled 只读

表示全屏模式是否可用。

Document.lastModified 只读

返回文档最后修改的时间。

Document.location 只读

返回当前文档的 URI。

Document.readyState 只读

返回当前文档的加载状态。

Document.referrer 只读

返回链接到此页的页面的 URI。

Document.title

获取或设置当前文档的标题。

Document.URL 只读

以字符串形式返回文档的位置。

具名属性

文档中的某些元素也以属性的形式暴露:

  • 对于每个 <embed><form><iframe><img><object> 元素,其 name(如果非空)都会被暴露出来。例如,如果文档包含 <iframe name="my_form">,那么 document["my_form"](及其等价的 document.my_form)会返回对该元素的引用。
  • 对于每个 <form> 元素,其 id(如果非空)也会被暴露出来。
  • 对于每个具有非空 name<img> 元素,其 id(如果非空)也会被暴露出来。

如果某个属性对应单个元素,则直接返回该元素。如果该单个元素是一个 iframe,则返回其 contentWindow 代替。如果该属性对应多个元素,则返回一个包含所有这些元素的 HTMLCollection

已弃用的属性

Document.alinkColor 已弃用

返回或设置文档正文部分激活的链接的颜色。

Document.all 已弃用

返回一个以文档节点为根节点的 HTMLAllCollection 集合,以访问文档中所有的元素。这是遗留的非标准属性,不应使用。

Document.anchors 已弃用 只读

返回文档中所有锚点元素的列表。

Document.applets 已弃用 只读

返回一个空的 HTMLCollection。过去用于返回文档中的小应用程序(applet)列表的遗留属性。

Document.bgColor 已弃用

获取或设置当前文档的背景颜色。

Document.charset 已弃用 只读

Document.characterSet 的别名,请使用原始属性替换。

Document.domain 已弃用

获取或设置当前文档的域。

Document.fgColor 已弃用

获取或设置当前文档的前景色或文本颜色。

Document.fullscreen 已弃用

若文档处于全屏模式,则返回 true

Document.inputEncoding 只读 已弃用

Document.characterSet 的别名,请使用原始属性替换。

Document.lastStyleSheetSet 已弃用 只读 非标准

返回最后启用的样式表的名字。在设置 selectedStyleSheetSet 前,其值都为 null

Document.linkColor 已弃用

获取或设置文档中超链接的颜色。

Document.preferredStyleSheetSet 已弃用 只读 非标准

返回文档作者首选的样式表。

Document.rootElement 已弃用

类似于 Document.documentElement,但其仅用于 <svg> 根元素。请使用后者代替。

Document.selectedStyleSheetSet 已弃用 只读

返回当前正使用的样式表的集合。

Document.styleSheetSets 已弃用 只读 非标准

返回文档上可用样式表的集合。

Document.vlinkColor 已弃用

获取或设置被访问的超链接的颜色。

Document.xmlEncoding 已弃用

返回由 XML 声明的编码类型。

Document.xmlStandalone 已弃用

若 XML 声明指定的文档是独立的(例如:文档类型定义的外部内容会影响文档的内容),则返回 true,否则返回 false

Document.xmlVersion 已弃用

返回 XML 声明中指定的版本号,若声明不存在则为 "1.0"

实例方法

该接口还继承了 NodeEventTarget 接口。

Document.adoptNode()

从外部文档中转移节点。

Document.append()

在文档的最后一个子节点后插入一个 Node 对象或字符串的集合。

Document.ariaNotify() 实验性 非标准

指定屏幕阅读器应朗读给定的文本字符串。

Document.browsingTopics() 非标准 已弃用

返回一个会兑现为对象数组(表示用户最近三个周期中的热门主题)的 promise。默认情况下,该方法还会使浏览器记录调用者观察到的当前页面访问信息,以便稍后在主题计算中使用页面的主机名。有关更多详细信息,请参阅主题 API

Document.captureEvents() 已弃用

参见 Window.captureEvents

Document.caretPositionFromPoint()

返回一个包含 DOM 节点(包含插入符号以及该符号在节点中的字符偏移量)的 CaretPosition 对象。

Document.caretRangeFromPoint() 非标准

获取一个 Range 对象,其为指定坐标下的文档片段。

Document.createAttribute()

创建一个新的 Attr 对象并返回。

Document.createAttributeNS()

在给定命名空间创建一个新的属性节点并返回。

Document.createCDATASection()

创建一个新的数据(CDATA)节点并返回。

Document.createComment()

创建一个新的注释节点并返回。

Document.createDocumentFragment()

创建一个新的文档片段。

Document.createElement()

用给定标签名创建一个新的元素。

Document.createElementNS()

用给定标签名和命名空间创建一个新的元素。

Document.createEvent() 已弃用

创建一个事件对象。

Document.createNodeIterator()

创建一个 NodeIterator 对象。

Document.createProcessingInstruction()

创建一个新的 ProcessingInstruction 对象。

Document.createRange()

创建一个 Range 对象。

Document.createTextNode()

创建一个文本节点。

Document.createTouch() 已弃用 非标准

创建一个 Touch 对象。

Document.createTouchList() 已弃用 非标准

创建一个 TouchList 对象。

Document.createTreeWalker()

创建一个 TreeWalker 对象。

Document.elementFromPoint()

返回指定坐标最顶层的元素。

Document.elementsFromPoint()

返回包含指定坐标下所有元素的数组。

Document.enableStyleSheetsForSet() 已弃用 非标准

启用指定的样式表集合。

Document.exitFullscreen()

阻止文档的全屏元素以全屏模式显示。

Document.exitPictureInPicture()

从浮动的画中画窗口中移除视频,并返回到它的原始容器。

Document.exitPointerLock()

释放指针锁。

Document.getAnimations()

返回包含所有目前有效的 Animation 对象(其目标元素为 document 的后代)的数组。

Document.getBoxQuads() 实验性

返回一个 DOMQuad 对象(表示节点中的 CSS 片段)的列表。

Document.getElementById()

返回标识元素的引用对象。

Document.getElementsByClassName()

返回具有给定类名的元素列表。

Document.getElementsByTagName()

返回具有给定标签名的元素列表。

Document.getElementsByTagNameNS()

返回具有给定标签名和命名空间的元素列表。

Document.getSelection()

返回一个 Selection 对象,表示用户选择的文本范围或是插入符号当前的位置。

Document.hasPrivateToken() 实验性

返回一个会兑现为用于表示浏览器是否有来自特定发行者的私有状态令牌的布尔值的 Promise

Document.hasRedemptionRecord() 实验性

返回一个会兑现为用于表示浏览器是否有来自特定发行者的兑换记录的布尔值的 promise。

Document.hasStorageAccess()

返回一个 Promise,其会兑现一个用于表示文档是否有未分区 cookie 访问权限的布尔值。

Document.hasUnpartitionedCookieAccess()

Document.hasStorageAccess() 的新名称。

Document.importNode()

返回外部文档的节点的拷贝。

Document.moveBefore()

将给定 Node 移动到 Document DOM 节点内(作为直接子节点)的给定参考节点之前,而不通过先移除然后再插入的方式。

Document.mozSetImageElement() 非标准

允许你更改指定元素 ID 的背景图像所用的元素。

Document.prepend()

在文档的第一个子节点前插入一个 Node 对象或字符串的集合。

Document.querySelector()

返回文档中与指定的选择器匹配的第一个元素节点。

Document.querySelectorAll()

返回包含文档中与指定的选择器匹配的所有元素节点的列表。

Document.releaseCapture() 非标准

若鼠标在当前文档的某一个元素之上,则释放当前的鼠标捕获。

Document.releaseEvents() 已弃用

参见 Window.releaseEvents()

Document.replaceChildren()

用一个指定的新的子节点集合替换替换文档中现有的子节点。

Document.requestStorageAccess()

允许在第三方上下文中加载的文档(即嵌入在 <iframe> 的)请求访问未分区 cookie,以便在默认情况下,用户代理可以通过阻止在第三方上下文中加载的网站访问未分区 cookie 来提高隐私性。

Document.requestStorageAccessFor() 实验性

允许顶级站点代表来自同一关联网站集合中的其他站点的嵌入内容请求第三方 cookie 访问。

Document.startViewTransition()

启动新的视图转换并返回一个表示它的 ViewTransition 对象。

Document 接口使用 XPathEvaluator 接口扩展:

Document.createExpression()

编译一个用于(重复)执行的 XPathExpression

Document.createNSResolver()

原样返回输入的节点。

Document.evaluate()

执行一个 XPath 表达式。

HTML 文档的扩展

HTML 文档的 Document 接口继承了 HTMLDocument 接口,或为文档进行了扩展:

Document.clear() 已弃用

这个方法没有任何作用。

Document.close()

关闭用于写入的文档流。

Document.execCommand() 已弃用

在可编辑文档中执行格式化命令。

Document.getElementsByName()

返回一个具有给定名称的元素的列表。

Document.hasFocus()

若焦点目前位于给定的文档内,则返回 true

Document.open()

打开用于写入的文档流。

Document.queryCommandEnabled() 已弃用 非标准

若可在当前范围内执行格式化命令,则返回 true

Document.queryCommandIndeterm() 已弃用

若格式化命令在当前范围内处于不确定的状态,则返回 true

Document.queryCommandState() 已弃用 非标准

若格式化命令已在当前范围内执行,则返回 true

Document.queryCommandSupported() 已弃用 非标准

若当前范围支持格式化命令,则返回 true

Document.queryCommandValue() 已弃用

返回格式化命令当前的范围值。

Document.write()

向文档写入文本。

Document.writeln()

向文档写入一行文本。

静态方法

此接口还继承了 NodeEventTarget 接口。

Document.parseHTML() 实验性

以 XSS 安全的方式,通过对 HTML 字符串进行净化处理,创建一个新的 Document 对象。

Document.parseHTMLUnsafe()

通过 HTML 字符串创建一个新的 Document 对象,而不执行任何清理操作。该字符串可能包含声明式影子根。

事件

可以使用 addEventListener() 或为该接口的事件处理器属性 oneventname 赋值的方式来监听这些事件。除了下面列出的事件之外,许多事件还可以在文档树中包含的节点冒泡。

afterscriptexecute 非标准 已弃用

在静态的 <script> 元素执行完其中的脚本时触发。

beforescriptexecute 非标准 已弃用

在静态的 <script> 开始执行脚本时触发。

prerenderingchange 实验性

在预渲染文档被激活(即用户查看该页面)时触发。

securitypolicyviolation

在违反内容安全策略时触发。

visibilitychange

在标签页内容变为可见或隐藏时触发。

全屏事件

fullscreenchange

Document 进入或退出全屏模式时触发。

fullscreenerror

在尝试进入或退出全屏模式而发生错误时触发。

加载和卸载事件

DOMContentLoaded

在文档完全加载并解析后触发,无需等待样式表、图像和子框架完成加载。

readystatechange

在文档的 readyState 属性发生变化时触发。

指针锁定事件

pointerlockchange

在指针被锁定或解锁时触发。

pointerlockerror

在尝试锁定指针失败时触发。

滚动事件

scroll

在文档视图或元素被滚动时触发。

scrollend

在文档视图或元素完成滚动时触发。

scrollsnapchange 实验性

在滚动操作结束而选择了新的滚动捕捉目标时,在滚动容器上触发。

scrollsnapchanging 实验性

在浏览器确定有新的滚动捕捉目标待定(即若当前滚动手势结束,则会被选中)时,在滚动容器上触发。

选择事件

selectionchange

在文档中的选中的文本发生改变时触发。

冒泡事件

并非所有冒泡事件都能到达 Document 对象。只有以下事件可以,并且可以在 Document 对象上监听:

规范

Specification
DOM
# interface-document
HTML
# the-document-object
CSSOM View Module
# extensions-to-the-document-interface
Pointer Lock 2.0
# extensions-to-the-document-interface
Selection API
# extensions-to-document-interface

浏览器兼容性