gpt4 book ai didi

javascript - 为什么没有为 document.readyState== ="complete"加载 javascript

转载 作者:太空狗 更新时间:2023-10-29 14:40:45 25 4
gpt4 key购买 nike

我刚开始从 w3school 开始学习 javascript我发现“您只能在 HTML 输出中使用 document.write。如果在文档加载后使用它,整个文档将被覆盖。”所以我尝试编写以下代码来检查有效性:

<html>
<head>
<title>ashish javascript learning</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p> sample html with javascript </p>
<script>
document.write("<h1>this is heading</h1>");
document.write("<p>this is sample para</p>");
</script>
<script>
if(document.readyState === "complete"){
loaded();
}
function loaded(){
document.write("<p>loading content after the document has been loaded");
}
</script>
</body>
</html>

代码仍然显示旧值,并没有覆盖网页的内容。你能告诉我我做错了什么吗?

最佳答案

在您测试 document.readyState === "complete" 时,文档的 readyState 不是“complete”,而是“正在加载”,所以什么都没有发生,并且永远不会调用 loaded

您可以监听 readyState 的变化,然后检查它是否“完成”(或者监听 window.onload 哪个更容易):

document.addEventListener('readystatechange', e => {
if(document.readyState === "complete"){
loaded();
}
});

关于javascript - 为什么没有为 document.readyState== ="complete"加载 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16450973/

25 4 0