JavaScript中的文本文件读取和处理

时间:2015-07-17 20:32:35

标签: javascript file filereader

我正在尝试编写一个函数,在该函数中可以选择,读取和使用文本文件作为变量,然后可以将其拆分为单个单词的数组。当它尝试运行readAsText方法时,我得到this.files [0]未定义的错误。

 <pre id="contents"></pre>
 <script type="text/javascript">
        function findWord() { 
            function readFile() {
                var fr = new FileReader();
                fr.onload = function() {
                    document.getElementById('contents').textContent = this.result;
                };
                fr.readAsText(this.files[0]);
            }
            var myText = document.getElementById('fileInput').addEventListener('change', readFile());
            var words = myText.split(" ");
            var foundWord = words[0];
            document.write(foundWord);
        }
</script>
<input type="file" id="fileInput" />
<input type="submit" value="Find Word" onclick="findWord();" />

1 个答案:

答案 0 :(得分:0)

EventTarget.addEventListener期望一个函数作为第二个参数。

您传递readFile()作为第二个参数。 readFile()不是函数。这是调用函数readFile的结果。当您调用该函数(将其结果传递给EventTarget.addEventListener)时,this.files[0]未定义,因为this仍然引用了没有files属性的全局对象。

readFile作为第二个参数传递给EventTarget.addEventListener,而不是readFile()