document.write和document.innerHTML与其他javascript问题有什么区别
我在尝试将标记放入document.write()调用时遇到问题。我认为这是因为document.write()已经存在于另一个标记中 我在网上看到还有一个document.innerHTML()调用。有人知道这对我有帮助吗?如果没有,还有别的方法吗document.write和document.innerHTML与其他javascript问题有什么区别,javascript,document.write,Javascript,Document.write,我在尝试将标记放入document.write()调用时遇到问题。我认为这是因为document.write()已经存在于另一个标记中 我在网上看到还有一个document.innerHTML()调用。有人知道这对我有帮助吗?如果没有,还有别的方法吗 谢谢:)文档。write可用于在解析页面时发出标记。解析页面后,它不能用于修改页面。document.write的输出直接进入解析器,就好像它最初在HTML文档中一样。例如: <body> <script> document
谢谢:)
文档。write
可用于在解析页面时发出标记。解析页面后,它不能用于修改页面。document.write
的输出直接进入解析器,就好像它最初在HTML文档中一样。例如:
<body>
<script>
document.write("<p>");
</script>
hi there</p>
…将段落从“您好”改为“代码更新”
更多信息可供探索:
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>