0

http://afarkas.github.io/webshim/demos/demos/filereader.html的 WebShims 文档中,它给了我一个使用 FileReader 和 WebShims 的例子。跟着它我现在有这个代码

 <input class="ws-filereader" id="userFiles" multiple type="file"/>

 //Added Mordenizr and JQuery and WebShims library
 $.webshims.polyfill();

 $(function()
 { 
     $('#userFiles').on('change', function (evt) 
     { 
         var reader, file; 
         reader = new FileReader(); 
         reader.onload = function (evt) 
         { 
               var fileData = evt.target.result; 
         }; 
         file = $(this).prop('files')[0]; 
         reader.readAsDataURL(file); 
     }); 
 });

当我在 IE9 中运行它时,它会输入更改 userFiles 的代码,但是当我调用获取时

 console.log($(this).prop('files').length);

它给出0。它有什么问题?

当我打开

 $.webshims.setOptions('debug', true);

控制台给了我

 Unable to get value of the property 'input': object is null or undefined.

在其问题https://github.com/Jahdrien/FileReader/issues/46上发布了一个类似的问题,它说 WebShims 支持 FileReader 的 IE9

4

1 回答 1

0

问题是文件 API 直到 IE10 才在 IE 中引入:

http://msdn.microsoft.com/en-us/library/ie/hh673542%28v=vs.85%29.aspx

这个 polyfill 列表可能有助于找到解决方法:

https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills#wiki-file-api

于 2014-02-10T12:57:38.230 回答