我正在尝试编写一个函数,在该函数中可以选择,读取和使用文本文件作为变量,然后可以将其拆分为单个单词的数组。当它尝试运行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();" />
答案 0 :(得分:0)
EventTarget.addEventListener
期望一个函数作为第二个参数。
您传递readFile()
作为第二个参数。 readFile()
不是函数。这是调用函数readFile
的结果。当您调用该函数(将其结果传递给EventTarget.addEventListener
)时,this.files[0]
未定义,因为this
仍然引用了没有files
属性的全局对象。
将readFile
作为第二个参数传递给EventTarget.addEventListener
,而不是readFile()
。