使用fileReader时,JavaScript中的全局变量未定义

时间:2015-04-17 00:04:24

标签: javascript filereader

我正在编写一个实用程序,它将(应该)允许用户附加文本文档(' 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>

0 个答案:

没有答案