webshims FileReader在IE9中不起作用

时间:2015-01-04 15:08:19

标签: javascript internet-explorer

我正在尝试使用webshim FileReaderin IE9,因为因为在IE9中不支持javascript FileReader。

我的代码;

HTML:

使用Javascript:

$( document ).ready(function() {

    //webshim.setOptions('basePath', '/js-webshim/minified/shims/');

    webshims.setOptions({
        'basePath':'/js-webshim/minified/shims/'
        });

    webshims.polyfill('forms forms-ext filereader');    



      $('#user-photo').on('change', function (evt) {
            var reader, file;
            reader = new FileReader();
            reader.onload = function (evt) {
              var fileData = evt.target.result;

              // fileData is the base64 encoded image
            };

            //use $.prop to access files property
            file = $(this).prop('files')[0];
            reader.readAsDataURL(file);
          });       

});

我要上传txt文件,但是当我上传文件时,reader = new FileReader();这里抛出异常,因为FileReader未定义。它适用于IE9以外的所有其他浏览器

但是Github说它可以在IE6 +中运行。

https://github.com/aFarkas/webshim/

任何人都可以帮我解决这个问题吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

webshims wiki声明:

文件阅读器功能基于https://github.com/moxiecode/moxie

的代码

从moxie github链接,它显示:

XHR2和文件API pollyfill是多运行时的,这意味着它们将回退到Flash和SilverLight(另外还有生产中的Java运行时),甚至是#old;#good;" HTML4,当前浏览器中没有找到HTML5功能时。

由于IE9没有natively支持Filereader,我认为它应该回退到moxie Flash / Silverlight / javasctipt环境

请检查以下内容:

  • 您的文件输入是否具有shimable类?

    <input type="file" class="ws-filereader" id="user-photo" multiple="" accept="image/*" />
    
  • 您的文件阅读器polyfill已加载吗?

    //load the filereader
    webshim.polyfill('filereader');
    
  • 您的垫片文件夹是否在正确的路径中?默认情况下,此路径是动态计算的,因此请确保使用您明确定义的内容

      webshims.setOptions({
        'basePath':'/js-webshim/minified/shims/'
        });
    
  • 我看到了与webshim相关的注释代码,以及与webshims相关的其他注释代码。 webshims是否是正确使用的对象?