Document.write 清除页面

IT技术 javascript html dom-events
2021-01-13 23:02:50

为什么在下面的代码中调用document.write函数时validator()表单元素(复选框和按钮)从屏幕上删除?

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
            function validator() {
                if (document.myForm.thebox.checked)
                    document.write("checkBox is checked");
                else 
                    document.write("checkBox is NOT checked");
            }
        </script>
    </head>
    <body>
        <form name="myForm">
            <input type="checkbox" name ="thebox"/>
            <input type="button" onClick="validator()" name="validation" value="Press me for validation"/>
        </form>
    </body>
</html>
6个回答

document.write()用于写入文档

在您的情况下,当调用 onClick 处理程序时,流很可能已经关闭,因为您的文档已完成加载。

调用document.write()关闭的文档流会自动调用document.open(),这将清除文档。

@JeromeWAGNER——不。阅读从您引用的页面链接规范:“打开用于写入的文档流。如果目标中存在文档,则此方法将其清除。
2021-03-21 23:02:50

一个document.write()页面加载后调用将覆盖当前文档。

您想设置文档中某个元素的文本。如果你添加一个

<p id="message"></p>

到你身体的尽头,然后你可以打电话

document.getElementById("message").innerHTML = "your text here";

或者使用 jQuery 库

$("#message").html("your text here");
它应该是 $("body").append("your text here");
2021-03-22 23:02:50
改变了一些东西 - 用 id 设置 <p> 的 html 而不是仅仅附加到正文 - 这样更干净
2021-04-04 23:02:50

document.write 文档加载调用隐式调用document.open,它会清除当前文档。(与document.open加载页面时调用相比,它将字符串插入到文档流中;它不会清除文档。)

document.write是古代 JavaScript 最古老的遗迹之一,通常应该避免。相反,您可能希望使用 DOM 操作方法来更新文档。

这正是我要找的:document.open(); 谢谢!
2021-03-15 23:02:50

您可以使用

alert("Checkbox is checked");

或者,如果您将在页面上显示它,首先创建一个带有 id“消息”的元素(您可以编写任何您想要的内容,但请记住,id 在页面上必须是唯一的),例如

<div id="message"></div>

然后使用

document.getElementById("message").innerHTML = "Checkbox is checked";

或者如果您使用的是 jQuery:

$("#message").html("Checkbox is checked");

或者如果您使用支持控制台的浏览器(Firefox、Chrome 等)

console.log("Checkbox is checked");

代替

document.write("Checkbox is checked");
        var x = document.createElement("div")
        document.body.appendChild(x)
我删除了</div>并且只抓取了来自var x ...to的行x.innerHTML ...,我发现这在我的应用程序中有效。(我也不得不添加分号。)
2021-03-25 23:02:50
我修好了它!固定 Document.write!
2021-03-26 23:02:50