根据其他文档,我已成功打印出一个以行分隔的文本文件。
<!DOCTYPE html>
<html>
<head>
<script>
function readFile()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText.split("\n");
}
}
xmlhttp.open("GET","OFCaddresses.txt",true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><h2>"FILE.txt"</h2></div>
<button type="button" onclick="readFile()">FILE</button>
</body>
</html>
如果有人可以解释的话,我试图更好地理解这是如何工作的。我了解他们如何根据浏览器定义 xmlhttp
,但是什么是
document.getElementById("myDiv").innerHTML=xmlhttp.responseText.split("\n");
实际上呢?它是否将 myDiv 的内容从文本更改为文件内容? onreadystatechange
与按钮有什么关系?
最佳答案
看来您需要更多地了解 javascript 的作用及其工作原理。
xmlhttp.onreadystatechange=function()
正在将一个函数分配给xmlhttp
当 readystate
时将执行的对象变化。这意味着作为 xmlhttp
对象经历了请求数据的各个阶段,它会多次执行此函数。
在该函数中,您有一个检查:if (xmlhttp.readyState==4 && xmlhttp.status==200)
这表示如果就绪状态为 4(完整 - 有关就绪状态的更多信息,请参阅 here),则继续执行 {}
内的所有内容 block 。
最后,你得到了这段代码
document.getElementById("myDiv").innerHTML=xmlhttp.responseText.split("\n");
这是使用 document
保存页面上所有 html 的对象。 getElementById
方法在 html 对象中搜索具有给定 id 的项目。您已获得以下 html
<div id="myDiv"><h2>"FILE.txt"</h2></div>
所以document.getElementById("myDiv")
找到这个div。 innerHTML
属性返回该 div 的 html,当前是您的 <h2>
header 。
xmlhttp.responseText.split("\n");
从您的 xmlhttp
获取响应对象并通过换行将其拆分为数组并将其设置为新值 innerHTML
目的。当数组在 html 中打印时,它是用逗号分隔的。
希望这能让您更好地理解。但这些都是非常基本的 JavaScript 命令,因此您还有很多东西需要学习。
关于javascript - 解释 document.getelementbyid.innerhtml 如何打印文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24622548/