以下代码在Chrome中正常运行,但在IE9中失败 - 当我们检索选定文件时processFiles()
e.target.files
null
<!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>
有什么想法吗?
答案 0 :(得分:2)
您的代码假定支持File API。支持File API的IE的第一个版本是IE10。您的代码将永远不会像现在一样跨浏览器工作。
考虑使用已经跨浏览器处理上传的Fine Uploader并包含许多有用的功能。