我正在编写一个实用程序,它将(应该)允许用户附加文本文档(' test.txt')并将该文件的内容存储到全局变量output
中。我不明白的地方(我在这里遗漏了一些内容)是在下面的代码(alert(output + " | " + test);
)中返回output
为未定义但test
为&# 34;你好"
就像fileReader
处理完所有内容后所有内容一样,output
将被设置为未定义。但是,通过设置div
元素(输出)的innerText,如果所有内容都在fileReader.onload
函数内,它会将数据打印到页面。如果它在它之外,它是未定义的。
那么,简而言之,为什么output
未定义?
JavaScript的:
var output;
var test;
function loadContent() {
var fileReader = new FileReader();
var xmlDoc;
test = "Hello";
fileReader.readAsText(document.getElementById("slnFile").files[0]);
fileReader.onload = function (event) {
output = event.target.result.toString();
document.getElementById("output").innerText = output.toString();
};
alert(output + " | " + test);
}
HTML
<!DOCTYPE Html />
<html>
<head>
<title></title>
<link rel="stylesheet" href="theCSS.css" />
</head>
<body>
<p>Solution: <input id="slnFile" type="file" onchange="loadContent();"/></p>
<div id="output"></div>
<script type="text/javascript" src="jQuery_v1.10.2.js"></script>
<script type="text/javascript" src="jquery-ui.min.js"></script>
<script type="text/javascript" src="theJS.js"></script>
</body>
</html>