2012-07-30 49 views
6

我有一個:IE的Java腳本錯誤無法獲得屬性的值爲「0」:

<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

什麼是線108的代碼?另外,什麼版本的IE? – anAgent 2012-07-30 14:18:13

+0

對不起,這裏是var f = ev.target.files [0]; 我也使用IE 9並在8試過,兩者都不起作用 – Funky 2012-07-30 14:20:29

+0

需要這個的jsfiddle。 IE告訴你ev.target不包含文件數組。 – jholloman 2012-07-30 14:24:49

回答

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); 
} 
+1

我不認爲'文件'在IE9中的作品。 http://caniuse.com/#search=filereader – 2012-07-30 14:27:48

+0

是的,說不支持:(有沒有其他的替代方法? – Funky 2012-07-30 14:32:13

+0

我的答案顯示你不支持文件時該怎麼做,你試過嗎? – 2012-07-30 15:05:22

相關問題