这是前一篇文章(已解决)的后续内容。在上一篇文章中,我们加载了一个分隔的文本文件,然后对该文件的内容采取了操作。但我们所做的是在一个平稳的事件进展中。在我的实际实现中,事件将单独发生。首先,将使用FileReader API加载制表符分隔的文本文件,并显示在页面上。很久以后,一个函数需要检索已加载的内容并用它来处理。我以为我可以毫不费力地分开任务,但我错了。我不知道自己做错了什么,或者我是不是以错误的方式去做。我很欣赏一些意见。
注意:我不一定要直接使用pre-tag" fileDisplayArea"中的信息。我只是觉得这样做很容易。我可以使用存储在内存中的字符串,如果更好的话。字符串不应超过6或7 Mb。
我需要做什么,所以稍后我可以使用加载的字符串并放在" fileDisplayArea"?
提前致谢, 安德鲁
var fileInput = document.getElementById('fileInput');
fileInput.addEventListener('change', function (e) {
var file = fileInput.files[0];
var textType = /text.*/;
if (file.type.match(textType)) {
var reader = new FileReader();
reader.onload = function (e) {
// Entire file
fileDisplayArea.innerText = reader.result;
}
reader.readAsText(file);
} else {
fileDisplayArea.innerText = "File not supported!"
}
});
// doIt functionality
document.getElementById("doIt").addEventListener("click", function () {
var myTemp = document.getElementById("fileDisplayArea");
console.log(myTemp);
// trying to retreive original reader.result contents so I can do stuff with it
// i thought it would be as simple as using getElementByID, but i'm obviously wrong
}, false);

<br />
Step 1:<br />
Select a text file:
<input type="file" id="fileInput">
<hr />
Step 2:<br />
Retreive the contents previously loaded. (Normally 'doIt' would be called from another function, not a button.)
<button id="doIt">doIt</button>
<hr />
<pre id="fileDisplayArea"></pre>
&#13;