Document

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

* 此特性的某些部分可能存在不同级别的支持。

Document 接口表示浏览器中加载的任何网页,并作为网页内容(即 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.adoptedStyleSheets

添加一个构造样式表数组,供文档使用。这些样式表也可以与同一文档的 Shadow DOM 子树共享。

Document.body

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

Document.characterSet 只读

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

Document.childElementCount 只读

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

Document.children 只读

返回当前文档的子元素。

Document.compatMode 只读

指示文档是以怪异模式还是标准模式呈现。

Document.contentType 只读

返回当前文档 MIME 标头中的 Content-Type。

Document.currentScript 只读

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

Document.doctype 只读

返回当前文档的文档类型定义 (DTD)。

Document.documentElement 只读

返回作为文档直接子元素的 Element。对于 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 只读

返回当前文档中以画中画模式呈现的 Element

Document.pictureInPictureEnabled 只读

如果画中画功能已启用,则返回 true。

Document.plugins 只读

返回可用插件的 HTMLCollection

Document.pointerLockElement 只读

返回当指针被锁定时代替鼠标事件的目标元素。如果锁定挂起、指针未锁定或目标位于其他文档中,则为 null

Document.prerendering 只读 实验性功能

返回一个布尔值,指示文档当前是否正在通过 推测规则 API 启动预渲染。

Document.scripts 只读

返回文档中 <script> 元素的 HTMLCollection

Document.scrollingElement 只读

返回对滚动文档的 Element 的引用。

Document.styleSheets 只读

返回明确链接到文档或嵌入在文档中的样式表的 CSSStyleSheet 对象的 StyleSheetList

Document.timeline 只读

返回作为 DocumentTimeline 特殊实例的时间轴,该实例在页面加载时自动创建。

Document.visibilityState 只读

返回一个 string,表示文档的可见性状态。可能的值为 visiblehiddenunloaded

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(如果不为空)会公开。例如,如果文档包含 <form name="my_form">,则 document["my_form"](及其等效的 document.my_form)会返回对该元素的引用。
  • 对于每个 <object> 元素,其 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 声明指定文档是独立的(例如,DTD 的外部部分影响文档内容),则返回 true,否则返回 false

Document.xmlVersion 已废弃

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

实例方法

此接口还继承自 NodeEventTarget 接口。

Document.adoptNode()

从外部文档中采用节点。

Document.append()

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

Document.ariaNotify() 实验性功能 非标准

指定屏幕阅读器应播报给定文本字符串。

Document.browsingTopics() 实验性功能 非标准

返回一个 Promise,该 Promise 包含一个对象数组,表示用户的热门话题,每个话题来自最近的三个 epoch。默认情况下,该方法还会导致浏览器记录调用者观察到的当前页面访问,以便页面主机名稍后可用于话题计算。有关更多详细信息,请参阅 话题 API

Document.captureEvents() 已废弃

请参阅 Window.captureEvents

Document.caretPositionFromPoint()

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

Document.caretRangeFromPoint() 非标准

获取指定坐标下文档片段的 Range 对象。

Document.createAttribute()

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

Document.createAttributeNS()

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

Document.createCDATASection()

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

Document.createComment()

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

Document.createDocumentFragment()

创建一个新的文档片段。

Document.createElement()

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

Document.createElementNS()

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

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() 实验性功能

返回表示节点 CSS 片段的 DOMQuad 对象列表。

Document.getElementById()

返回对已识别元素的引用对象。

Document.getElementsByClassName()

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

Document.getElementsByTagName()

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

Document.getElementsByTagNameNS()

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

Document.getSelection()

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

Document.hasStorageAccess()

返回一个 Promise,该 Promise 解析为布尔值,指示文档是否可以访问未分区的 cookie。

Document.hasUnpartitionedCookieAccess()

Document.hasStorageAccess() 的新名称。

Document.importNode()

返回外部文档中节点的克隆。

Document.moveBefore()

将给定的 Node 作为直接子节点移动到 Document DOM 节点内部,在给定的引用节点之前,而无需先移除再插入节点。

Document.mozSetImageElement() 非标准

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

Document.prepend()

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

Document.querySelector()

返回文档中第一个匹配指定选择器的 Element 节点,按文档顺序排列。

Document.querySelectorAll()

返回文档中所有匹配指定选择器的 Element 节点的列表。

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 对象,而不执行净化。该字符串可能包含声明性 Shadow Root。

事件

使用 addEventListener() 或通过将事件监听器分配给此接口的 oneventname 属性来监听这些事件。除了下面列出的事件,许多事件可以从文档树中包含的节点冒泡。

afterscriptexecute 非标准 已废弃

当静态 <script> 元素完成执行其脚本时触发

beforescriptexecute 非标准 已废弃

当静态 <script> 即将开始执行时触发。

prerenderingchange 实验性功能

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

securitypolicyviolation

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

visibilitychange

当选项卡内容变为可见或被隐藏时触发。

全屏事件

fullscreenchange

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

fullscreenerror

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

加载和卸载事件

DOMContentLoaded

当文档完全加载和解析完成时触发,无需等待样式表、图像和子帧加载完成。

readystatechange

当文档的 readyState 属性发生更改时触发。

指针锁定事件

pointerlockchange

当指针锁定/解锁时触发。

pointerlockerror

当锁定指针失败时触发。

滚动事件

scroll

当文档视图或元素已滚动时触发。

scrollend

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

scrollsnapchange 实验性功能

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

scrollsnapchanging 实验性功能

当浏览器确定一个新的滚动捕捉目标即将生效时,在滚动容器上触发,即它将在当前滚动手势结束时被选中。

选择事件

selectionchange

当文档上的当前文本选择发生更改时触发。

冒泡事件

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

规范

规范
DOM
# 接口-文档
HTML
# 文档对象
CSSOM 视图模块
# 文档接口的扩展
指针锁定 2.0
# 文档接口的扩展
Selection API
# 文档接口的扩展

浏览器兼容性