这个:
function myFunction() { document.write("sup"); }
在html中调用,例如:
<div id="myDiv"> <script>myFunction();</script> </div>t
sup向myDivdiv元素添加一个字符串。正是我想要的。但是,这:
sup
myDiv
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页面的一部分。与我的第一个示例相同,但首先加载文本文件。
问题是,当文档加载后运行document.write时,它将覆盖整个文档。如果在此之前运行,则不会覆盖它。
您要做的是设置特定元素的innerHtml,如下所示:
document.getElementById("myDiv").innerHTML="Sup";