Document: open() 方法

Document.open() 方法打开一个文档以进行写入

这会带来一些副作用。例如

  • 当前在文档、文档内的节点或文档的窗口上注册的所有事件监听器都将被移除。
  • 所有现有的节点都将从文档中移除。

语法

js
open()

参数

无。

返回值

一个 Document 对象实例。

示例

以下简单代码打开文档,并用多个不同的 HTML 片段替换其内容,然后再次关闭它。

js
document.open();
document.write("<p>Hello world!</p>");
document.write("<p>I am a fish</p>");
document.write("<p>The number is 42</p>");
document.close();

注释

当页面加载后调用 document.write() 时,会自动发生 document.open() 调用。

内容安全

此方法受与其他属性相同的同源策略的约束,并且如果这样做会更改文档的来源,则无法工作。

三参数 document.open()

document.open() 有一个鲜为人知且很少使用的三参数版本,它是 Window.open() 的别名(有关完整详细信息,请参阅其页面)。

例如,此调用在新的窗口中打开 github.com,并将它的 opener 设置为 null

js
document.open("https://www.github.com", "", "noopener=true");

二参数 document.open()

浏览器过去支持一个双参数的 document.open(),其签名如下

js
document.open(type, replace);

其中 type 指定您正在写入的数据的 MIME 类型(例如 text/html),并且如果设置了 replace(即 "replace" 字符串),则指定新文档的历史记录条目将替换正在写入的文档的当前历史记录条目。

此表单现已过时;它不会抛出错误,而是仅转发到 document.open()(即等效于不带任何参数运行它)。历史记录替换行为现在始终发生。

规范

规范
HTML 标准
# dom-document-open-dev

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅