Javascript 写下奇怪的行为 标题 我的网页

Javascript 写下奇怪的行为 标题 我的网页,javascript,Javascript,输出: 页面中的标记为: HTML 头部 元 标题 脚本 正文 H1 B 通过取消对第一个document.write()的注释,我得到以下输出: 8页面中的标签为: HTML 头部 正文 有些标签不见了,我不知道哪里错了!我提前向您表示感谢。这是因为文档。加载完文档后调用write,它会删除并替换当前文档。如果您在这里看到:onload=“showtags()”这就是它发生的原因文档。在加载DOM之前,需要调用write。例如: <!DOCTYPE html> <html l

输出:

页面中的标记为:
HTML
头部

标题
脚本
正文
H1
B

通过取消对第一个document.write()的注释,我得到以下输出:

8页面中的标签为:
HTML
头部
正文


有些标签不见了,我不知道哪里错了!我提前向您表示感谢。

这是因为
文档。加载完文档后调用write
,它会删除并替换当前文档。如果您在这里看到:
onload=“showtags()”
这就是它发生的原因<代码>文档。在加载DOM之前,需要调用write。例如:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Title</title>
        <script language="JavaScript">
        <!--
        function showtags()
        {
            var tag, tags;
            //document.write(document.all.length);
            tags = "The tags in the page are:"
            for(i = 0; i < document.all.length; i++)
            {
                tag = document.all(i).tagName;
                tags = tags + "<br>" + tag;
            }
            document.write(tags);
        }
        //  -->
        </script>    
    </head>
    <body onload="showtags()">
        <h1>My <b>Web</b> Page</h1>
    </body>
</html>
文档。写(“hi”)


没有问题,因为DOM仍在加载。但是在
onload
中,或者在页面完成加载后,通常不会加载。

一旦文档完成加载,任何
document.write()
都会清除当前文档并启动一个新的空白文档,因此您以前在文档中拥有的任何内容都将被清除


由于您在
onload
处理程序中调用此函数,因此文档肯定已完成加载,因此您的
document.write()
将启动一个新文档。

document.write
在函数中不好。它只应在dom仍在解析时在函数外部使用。否则,现有文档将替换为您传递给document.write.Where的已注释的
document.write()
,您未注释的文档在哪里?@Barmar最初发表文章时,是
document.write(document.all.length)最初被注释掉。它已解决。我将函数调用放在文档末尾,如Spencer所述。谢谢你们。
<p> <script> document.write("hi"); </script> </p>