document.write和document.innerHTML与其他javascript问题有什么区别

document.write和document.innerHTML与其他javascript问题有什么区别,javascript,document.write,Javascript,Document.write,我在尝试将标记放入document.write()调用时遇到问题。我认为这是因为document.write()已经存在于另一个标记中 我在网上看到还有一个document.innerHTML()调用。有人知道这对我有帮助吗?如果没有,还有别的方法吗 谢谢:)文档。write可用于在解析页面时发出标记。解析页面后,它不能用于修改页面。document.write的输出直接进入解析器,就好像它最初在HTML文档中一样。例如: <body> <script> document

我在尝试将标记放入document.write()调用时遇到问题。我认为这是因为document.write()已经存在于另一个标记中

我在网上看到还有一个document.innerHTML()调用。有人知道这对我有帮助吗?如果没有,还有别的方法吗


谢谢:)

文档。write
可用于在解析页面时发出标记。解析页面后,它不能用于修改页面。
document.write
的输出直接进入解析器,就好像它最初在HTML文档中一样。例如:

<body>
<script>
document.write("<p>");
</script>
hi there</p>
…将段落从“您好”改为“代码更新”

更多信息可供探索:


innerHTML不是一个函数,而是一个需要分配给的属性。但是:您在询问之前搜索过吗?您想添加标记吗?您是否尝试过使用dom插入新节点(标记)?也许你应该从这里开始:无论是
document.write
还是
document.innerHTML
都不是动态构建HTML的正确方法。您应该使用DOM方法,例如
createElement
appendChild
@jbabey:使用
innerHTML
是可以的。它是相当一致的跨浏览器(有gotchas),现在已经包含在一个规范中,并且对于许多用例来说比等效的DOM调用要快得多。只有7个规范链接?懒汉:如果多个document.write在同一个文档中,那么在编译相同的输入时,生成的代码没有区别吗?我认为writeCapture取代了DOM阻塞文档。用innerHTML编写。。。制作ControlJS的Steve Sounder说:我的解决方案是覆盖document.write并一次捕获每个脚本的输出。如果没有document.write输出,则继续执行下一个脚本。如果有输出,那么我将创建一个元素(现在是一个SPAN),将其插入正在执行的脚本标记之前的DOM中,并将SPAN的innerHTML设置为document.write的输出。这非常有效。@PauliSudarshanTerho-如果有几个,它们都(按顺序)输出到HTML解析器正在解析的令牌流。重新替换
文档。按说明编写
:这将打破一些网站的做法,例如,上面第一个例子。
<body>
<p>hi there</p>
<body>
<p id="target">Hi there</p>
<script>
document.getElementById("target").innerHTML = "Updated by <strong>code</strong>";
</script>
</body>