ZetCode

JavaScript document.write

最后修改于 2025 年 4 月 2 日

在本文中,我们将探讨 JavaScript 中的 document.write 方法。此方法直接写入 HTML 文档流,允许开发人员动态输出内容。

基本定义

document.write 方法将文本字符串写入由 document.open 打开的文档流。当文档正在加载时,此方法会将内容附加到文档中。

文档加载完成后,调用 document.write 将会先清空整个文档,然后再进行写入。这种行为使得它通常不适用于现代 Web 开发实践。

基本的 document.write

此示例演示了 document.write 最简单的用法。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>Basic document.write</title>
</head>
<body>

<script>
    document.write('Hello, World!');
</script>

</body>
</html>

在此基本示例中,我们使用 document.write 将字符串“Hello, World!”直接输出到 HTML 文档中。文本会出现在脚本标签在文档中的位置。

这演示了 document.write 在初始页面加载期间将内容注入网页的基本用法。

写入 HTML 元素

此示例展示了如何使用 document.write 写入 HTML 元素。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>Writing HTML Elements</title>
</head>
<body>

<script>
    document.write('<h1>Welcome to My Site</h1>');
    document.write('<p>This content was generated dynamically.</p>');
</script>

</body>
</html>

这里我们使用 document.write 输出完整的 HTML 元素,包括一个 h1 标题和一个段落。浏览器会将它们渲染为普通的 HTML 元素。

这演示了 document.write 可用于生成结构化内容。请注意,HTML 字符串必须格式正确。

页面加载后写入

此示例演示了页面加载后调用 document.write 的效果。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>After Page Load</title>
</head>
<body>

<h1>Original Content</h1>
<button onclick="writeContent()">Write Content</button>

<script>
    function writeContent() {
        document.write('<h1>New Content</h1>');
    }
</script>

</body>
</html>

在此示例中,单击按钮会在页面加载后触发 document.write。这将清空整个文档,并用新内容替换它。

这就是为什么 document.write 在现代 JavaScript 中通常被避免使用的原因。它可能会意外地擦除整个页面内容。

写入变量

此示例展示了如何使用 document.write 输出变量值。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>Writing Variables</title>
</head>
<body>

<script>
    const userName = 'Alice';
    const userAge = 30;
    
    document.write(`<p>Name: ${userName}</p>`);
    document.write(`<p>Age: ${userAge}</p>`);
</script>

</body>
</html>

这里我们使用模板字面量将变量值插入到字符串中,然后将这些字符串写入文档。变量 userNameuserAge 显示在段落元素中。

这演示了 document.write 如何在初始页面加载期间将动态数据合并到页面内容中。

条件写入

此示例演示了使用 document.write 进行条件内容写入。

index.html
<!DOCTYPE html>
<html>
<head>
    <title>Conditional Writing</title>
</head>
<body>

<script>
    const isMorning = new Date().getHours() < 12;
    
    if (isMorning) {
        document.write('<h2>Good Morning!</h2>');
    } else {
        document.write('<h2>Good Afternoon!</h2>');
    }
</script>

</body>
</html>

在此示例中,我们检查当前时间,并使用 document.write 根据是上午还是下午输出不同的问候语。

这表明 document.write 可以与条件逻辑一起使用,在页面加载期间创建动态内容。问候语会根据一天中的时间而变化。

来源

MDN document.write 文档

在本文中,我们展示了如何在 JavaScript 中使用 document.write。虽然它对简单情况很有用,但现代 Web 开发通常更倾向于使用 DOM 操作方法来获得更好的控制。

作者

我叫 Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 JS DOM 教程