我正在阅读用户在浏览器中上传的文本文件。该代码按预期的方式在Chrome和Firefox中工作,但是在IE中,我仍然收到TypeMismatchError,尽管代码继续正常执行(读取正常且不会崩溃。)该错误在以下调用中发生:read.readAsText(inFile);
我使用按钮来发起上传请求,而不是标准文件输入div;因此单击该按钮会导致在文件输入div上单击,并且在用户选择文件后,我会处理上传。
<!-- Hidden Divs -->
<input type="file" name="my_file" id="my-file" style="display: none">
// Open Set button on main page
$("#open-set").click(function () {
// Clear file name already there (in case we try to upload the same file)
$('#my-file').val("");
// Actual file selector is hidden, so fake click
$('#my-file').click();
});
// Click handler
$('#my-file').on('change', function(){
handleFiles(this.files);
});
// handles incoming file from open-set
handleFiles = function (files) {
var inFile = files[0];
//console.log(inFile);
read = new FileReader();
read.readAsText(inFile); << ERROR ON THIS LINE
// When file is ready, load as json
read.onloadend = function () {
var userData = JSON.parse(read.result);
// render each json object to table
for (var i = 0; i < userData.length; i++) {
renderTableBody(userData[i]);
}
}
}
正如我所说,代码可以正常工作,即使抛出错误,我也无法检测到任何不当行为,但是我不想在控制台中留下任何错误。任何建议将不胜感激!