IE Javascript错误无法获取属性'0'的值:

时间:2012-07-30 14:17:00

标签: jquery internet-explorer file-upload

我有一个:

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

并使用div在用户使用此JQuery代码选择其图像时显示图像:

$('#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();
            }
        });

当然,除了Satans浏览器,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中效果很好。

由于

1 个答案:

答案 0 :(得分:8)

“。files”仅适用于那些支持HTML5的浏览器。

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

检查文件是否受支持:

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