document.write()覆盖整个页面

document.write() overwrites entire page

本文关键字:覆盖 write document      更新时间:2023-09-26

因此,我试图在单击按钮时显示HTML,但不是在脚本标记所在的位置插入HTML,而是用本应生成的代码覆盖整个页面。经过实验,我发现像这样简单的东西

document.write("<p>" + "Hello!" + "</p>")

会简单地插入它应该插入的内容。另一方面,我尝试执行的代码替换了整个页面。

有人知道怎么解决这个问题吗?下面是一些示例代码。

function writeIFrame() {
    document.write('<iframe width="500" height="300" src="https://www.youtube.com/embed/UJFdywQqovI" frameborder="0" allowfullscreen></iframe><p>Check out my YouTube channel <a href="https://www.youtube.com/channel/UCkqJM5HVjuvPA9H1VuFU5pQ">here</a> and subscribe!');
}

取决于函数的调用位置。

如果在html加载完成后调用document.write。它会覆盖整个页面。(因为在关闭html标记后附加它会导致语法错误,所以这样做毫无意义。)

你问这个问题已经两年了,所以,我想你会知道答案,但我发现还没有人回答正确:document.write()将始终覆盖所有文档。

最好的方法是使用.innerHTML方法和"+=",例如:

document.getElementById("test").innerHTML+= "Hi!";

然后你会有:

<p id="test"> Hi! </p>

请注意,+=将始终保留已写入的内容。如果我们想替换<p>标签中的内容,我们必须仅使用=

我知道你现在肯定会知道这一点,但我希望有人能找到这个问题,也许能得到一个好的答案