WebShims在IE9中不适用于FileReader

时间:2014-02-10 12:53:12

标签: javascript jquery html filereader webshim

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时输入代码,但是当我调用get

 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支持IE9 for FileReader

1 个答案:

答案 0 :(得分:0)

问题是在IE10之前没有在IE中引入文件API:

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