document.write()是否存在任何错误?

时间:2018-11-11 05:50:23

标签: javascript onload

我的代码如下:

window.onload = function() {
    var x = document.createElement("INPUT");
    x.setAttribute("type", "text");
    x.setAttribute("value", "");
    document.body.appendChild(x);
}

我还想写点东西,我增加了一行。

赞:

window.onload = function() {
    var x = document.createElement("INPUT");
    x.setAttribute("type", "text");
    x.setAttribute("value", "");
    document.body.appendChild(x);
    document.write("<br>");
}

然后,我的输入标签突然消失了。

因此,我写了'AAA'来检查是否添加了<br>代码。

赞:

window.onload = function() {
    var x = document.createElement("INPUT");
    x.setAttribute("type", "text");
    x.setAttribute("value", "");
    document.body.appendChild(x);

    document.write("<br>");
    document.write("AAA")
}

有一个新行,即AAA。

因此,我认为document.write()中存在错误或某些错误。

有任何错误吗?

还是我写错了什么?

我的目的是添加新行。

我想让我的代码正常运行。

有什么办法可以解决这个问题?

1 个答案:

答案 0 :(得分:3)

问题在于,如果页面已经加载,document.write将使用新的HTML字符串替换 整个页面。如果您删除了window.onload处理程序,并在浏览器进入<script>标签后立即运行了该代码段,则<input><br>都将插入到文档中符合预期:

<script language="javascript">
  var x = document.createElement("INPUT");
  x.setAttribute("type", "text");
  x.setAttribute("value", "");
  document.body.appendChild(x);
  document.write("<br>");
</script>

通常,解决方案是使用document.write-它的行为可能令人困惑,并且它提供的任何东西都无法像{{1 }}和appendChild,例如:

insertAdjacentHTML

document.body.appendChild(document.createElement('br'));