document.write - Web API 接口参考 编辑
Document.write()
方法将一个文本字符串写入一个由 document.open()
打开的文档流(document stream)。
注意: 因为 document.write
需要向文档流中写入内容,所以,若在一个已关闭(例如,已完成加载)的文档上调用 document.write
,就会自动调用 document.open
,这将清空该文档的内容。
语法
document.write(markup);
参数
- markup
- 一个包含要写入文档的文本的字符串。
示例
<html>
<head>
<meta charset="UTF-8">
<title><code>document.write()</code> example</title>
<script>
function newContent() {
document.open();
document.write("<h1>Out with the old - in with the new!</h1>");
document.close();
}
</script>
</head>
<body onload="newContent();">
<p>Some original document content.</p>
</body>
</html>
备注
向一个已经加载,并且没有调用过 document.open()
的文档写入数据时,会自动调用 document.open
。一旦完成了数据写入,建议调用 document.close()
,以告诉浏览器当前页面已经加载完毕。写入的数据会被解析到文档结构模型(DOM)里。在上面的例子里,元素 h1
会成为文档中的一个节点。
如果 document.write()
调用发生在 HTML 里的 <script>
标签中,那么它将不会自动调用 document.open()
。详见如下例子:
<script>
document.write("<h1>Main title</h1>")
</script>
注意:document.write
和 document.writeln
在 XHTML 文档中不可用(控制台上会显示 "Operation is not supported"[NS_ERROR_DOM_NOT_SUPPORTED_ERR
] 的报错信息)。 当打开本地的 .xhtml 格式的文件或任何其他 MIME 类型为 application/xhtml+xml
的文档时,均会报错。更多信息可查看 W3C XHTML FAQ。 注意:在有deferred 或 asynchronous 属性的 script 中,document.write
会被忽略,控制台会显示 "A call to document.write()
from an asynchronously-loaded external script was ignored" 的报错信息。 注意:在 Edge 中,在 <iframe>
内部调用 document.write
多于一次时会引发错误 SCRIPT70: Permission denied。 注意:从 Chrome 55 开始,Chrome(可能)不会运行通过 document.write()
注入的<script>
,以防止使用 2G 连接的用户找不到 HTTP 缓存。前往此链接查看这种情况发生需要满足的条件。规范
规范 | 状态 | 备注 |
---|---|---|
HTML Living Standard document.write(...) | Living Standard | |
Document Object Model (DOM) Level 2 HTML Specification document.write(...) | Obsolete |
浏览器兼容性
BCD tables only load in the browser
这个页面的兼容性表格是由一些结构化数据生成的。如果你想对数据作出贡献,详情请前往 https://github.com/mdn/browser-compat-data 并给我们一个 PR。参见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论