document.write()
和 innerHTML
都是在 JavaScript 中用于修改 HTML 文档的方法,但它们的工作方式和用途有所不同。
1. document.write()
document.write()
方法用于直接向 HTML 输出流写入内容。这意味着,当 HTML 文档还在加载时,你就可以使用 document.write()
向文档写入内容。然而,如果你在文档加载完成后使用 document.write()
,它实际上会清除当前文档并用你提供的内容替换整个文档。
例如:
document.write("<h1>Hello, World!</h1>");
这会在文档中插入一个 <h1>
元素。然而,document.write()
在现代开发中的使用并不推荐,因为它可能会导致一些不可预见的结果,特别是当它与其他可以改变页面内容的 API(如 innerHTML
或 DOM 操作方法)一起使用时。
2. innerHTML
innerHTML
属性用于获取或替换 HTML 元素的内容。与 document.write()
不同,innerHTML
不会影响整个 HTML 文档,只会影响你选择的元素。
例如:
document.getElementById("myDiv").innerHTML = "<h1>Hello, World!</h1>";
这会找到 ID 为 “myDiv” 的元素,并将其内容替换为 <h1>
元素。
总的来说,innerHTML
在现代开发中的使用比 document.write()
更为常见,因为它允许更精确地控制你要修改的页面部分。然而,需要注意的是,innerHTML
如果用于插入用户提供的内容可能会造成跨站脚本攻击(XSS),所以在处理不可信的输入时需要特别小心。