【问题标题】:IE Java script error Unable to get value of the property '0':IE Java 脚本错误无法获取属性“0”的值:
【发布时间】:2012-07-28 05:32:39
【问题描述】:

我有一个:

<img id="uploadedimage" alt="uploaded image" src="" width="250px" height="250px"/>

一旦用户使用这个 JQuery 代码选择了他们的图像,就会有一个 div 来显示图像:

$('#BusinessImage').change(function (ev) {

            var f = ev.target.files[0];
            var fr = new FileReader();
            var IsImage = false;

            // check the file is an image
            if (f.type.match('image.*')) {
                IsImage = true;
            }

            fr.onload = function (ev2) {
                if (IsImage) {
                    $('#uploadedimage').attr('src', ev2.target.result);  
                }
            };

            if (IsImage) {
                fr.readAsDataURL(f);
                ValidFileUpload();
            }
            else {
                InvalidFileUpload();
            }
        });

当然,除了撒旦浏览器 Internet Explorer 之外,此代码在所有其他浏览器中都运行良好。我收到此错误:

Line: 108
Character: 13
Code: 0
Error Message: Unable to get value of the property '0': object is null or undefined

有谁知道是什么原因造成的,因为它在 FFX 和 Chrome 中运行良好。

谢谢

【问题讨论】:

  • 第 108 行的代码是什么?还有,什么版本的IE?
  • 对不起,这里是 var f = ev.target.files[0];我也在用IE 9,在8试了一下,都不行
  • 需要这个的 jsfiddle。 IE 告诉你 ev.target 不包含文件数组。
  • File API 和 FileReader API 仅适用于 IE 10+。 caniuse.com/#search=filereader
  • 这是个好消息!该死的IE,还有其他选择吗? :)

标签: jquery internet-explorer file-upload


【解决方案1】:

".files" 仅适用于支持 HTML5 的浏览器。

IE10 支持文件,但对于 IE9 及早期版本,您必须使用其他方式获取路径。:

检查是否支持文件:

if( ev.target.files ){
  //supported
  console.log( ev.target.files[0] );
}else{
  //.files not supported
  console.log( ev.target.value );
}

【讨论】:

  • 是的,说不支持:(还有其他选择吗?
  • 我的回答告诉你当文件不受支持时该怎么做。你试过了吗?
  • 是的!它有效,但又出现了另一个错误::'FileReader' is undefined
  • 这不是你原来的问题。 FileReader 仅受 HTML5 投诉支持。要支持旧浏览器,请使用已修复所有常见问题的第三方工具,就像这样的工具:valums.com/ajax-upload
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
  • 2019-09-17
  • 2018-07-01
  • 1970-01-01
相关资源
最近更新 更多