2013-02-28 231 views
3

下面的代碼在Chrome中工作正常,但未能在IE9 - 在processFiles(),當我們重新選擇的文件e.target.filesnullHTML5文件上傳在IE9失敗

<!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> 

任何想法?

回答

2

您的代碼假定支持File API。支持File API的第一個IE版本是IE10。現在,您的代碼無法像跨瀏覽器一樣工作。

考慮使用Fine Uploader已經處理上載跨瀏覽器,幷包括一些有用的功能。