一尘不染

document.write()是否覆盖文档?

javascript

这个:

function myFunction()
{
    document.write("sup");
}

在html中调用,例如:

<div id="myDiv">
    <script>myFunction();</script>
</div>t

supmyDivdiv元素添加一个字符串。正是我想要的。但是,这:

function loadFile(uri)
{
    var r = new XMLHttpRequest();
    document.write("trying to open: " + uri);
    r.open('GET', uri, true);
    r.send(null);
    r.onreadystatechange = function()
    {
        if (r.readyState == 4)
        {
            myFunction();
        }
    }
}

function myFunction()
{
    document.write("sup");
}

这样称呼:

<div id="myDiv">
    <script>loadFile("filename.txt");</script>
</div>

似乎正在覆盖我的整个html文件。即,当我在Firefox中运行它时,它仅显示字符串sup(即页面的全部内容),但页面似乎仍在加载(FF的加载图标仍在进行动画显示,显然是无限的)。

首先,这将仅在本地,离线使用,作为呈现数据的快速便捷方式(使用html +
js和网络浏览器而不是纯文本文件)。我要加载的是本地文本文件,然后将其某些内容作为html页面的一部分。与我的第一个示例相同,但首先加载文本文件。


阅读 415

收藏
2020-05-01

共1个答案

一尘不染

问题是,当文档加载后运行document.write时,它将覆盖整个文档。如果在此之前运行,则不会覆盖它。

您要做的是设置特定元素的innerHtml,如下所示:

document.getElementById("myDiv").innerHTML="Sup";
2020-05-01