仅在IE中读取文件时出现JavaScript TypeMismatchError

时间:2019-10-11 18:43:32

标签: javascript

我正在阅读用户在浏览器中上传的文本文件。该代码按预期的方式在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]);
            }
        }
    }

正如我所说,代码可以正常工作,即使抛出错误,我也无法检测到任何不当行为,但是我不想在控制台中留下任何错误。任何建议将不胜感激!

0 个答案:

没有答案