3

以下代码在 Chrome 中运行良好,但在 IE9 中失败 - 在processFiles()我们检索选定文件e.target.filesnull

<!DOCTYPE html>
<html>
<header>
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
</header>
<body>
    <input type="file" id="uploader"/>

    <script>        
        var uploader = document.getElementById ("uploader");
        if (uploader.addEventListener) {  // all browsers except IE before version 9
            uploader.addEventListener ("change", processFiles, false);
        }
        else {
            if (uploader.attachEvent) {   // IE before version 9
                uploader.attachEvent ("change", processFiles);
            }
        }       

        function processFiles(e)
        {

            var files = e.target.files || e.dataTransfer.files;

            for (var i = 0 ; i < files.length ; i ++)
            {
                window.console && console.log && console.log(files[i].name);
            }           
        }       
    </script>   
<body>

有任何想法吗?

4

1 回答 1

2

您的代码假定支持 File API。第一个支持 File API 的 IE 版本是 IE10。你的代码永远不会像现在这样跨浏览器工作。

考虑使用已经处理跨浏览器上传并包含许多有用功能的Fine Uploader 。

于 2013-03-01T03:33:40.160 回答