document.write 与 innerHTML 的区别
对比 document.write 和 innerHTML 的使用场景和特性差异
问题
document.write 和 innerHTML 有什么区别?
解答
document.write
document.write 直接写入页面的内容流。如果在写入前没有调用 document.open(),浏览器会自动调用。每次写完关闭后重新调用该函数,会导致页面被重写。
// 页面加载时使用
document.write('<h1>Hello World</h1>');
// 页面加载完成后调用会重写整个页面
window.onload = function() {
document.write('<p>这会清空页面</p>'); // 整个页面被替换
};
innerHTML
innerHTML 是 DOM 元素的属性,代表该元素的 HTML 内容。可以精确修改某个具体元素,不会导致页面全部重绘。
// 修改特定元素
document.getElementById('content').innerHTML = '<p>更新内容</p>';
// 修改整个文档
document.documentElement.innerHTML = '<body>新页面</body>';
使用建议
innerHTML 在大多数情况下优于 document.write,因为它允许更精确地控制页面更新的部分,避免整个页面重绘。
关键点
document.write写入内容流,页面加载后调用会重写整个页面innerHTML修改指定 DOM 节点,不影响其他部分innerHTML提供更精确的控制,性能更好- 现代开发中推荐使用
innerHTML或其他 DOM 操作方法
目录