2013-06-01 42 views
-1

我想從客戶端計算機上傳圖片。在html和javascript上動態加載圖片

我這樣做如下。 一切都很好,但是這個代碼不爲IE9工作(以及一些以前的版本):

的代碼(JavaScript)的:對HTML

function readURL(input, image_id) { 
'use strict'; 
if (input.files && input.files[0]) { 
    var reader = new FileReader(); 

    reader.onload = function (e) { 
     $("#" + image_id).width("auto"); 
     $("#" + image_id).height("auto"); 
     s = input.files[0].name; 
     $("#" + image_id).attr('src', e.target.result); 
    }; 

    reader.readAsDataURL(input.files[0]); 
} 

和代碼:

   <div id = "id_divpic"> 
        <div class="myfileupload-buttonbar"> 
         <label class="myui-button"> 
          <span>Your picture</span> 
          <form> 
           <input type="file" name="video" accept="image/jpg,image/gif,image/bmp,image/jpeg,image/xbm" id = "id_filepic" onchange="readURL(this, 'id_image');" /> 
          </form> 
         </label> 
        </div> 
        <div id = "id_picture"> 
         <div id="id_imgInner"> 
          <div id="id_imgBack"></div> 
          <img id="id_image" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" onmousedown="return false" alt="Your picture"/> 
         </div> 
        </div> 
             </div> 

代碼有什麼問題,它不適用於IE8,9?

我能做些什麼才能使代碼運行?

謝謝:)

回答

0

在IE8上,我使用過濾器AlphaImageLoader(css)。

查看詳細信息:http://msdn.microsoft.com/en-us/library/ms532969(v=vs.85).aspx

// #ID圖像 - 標籤。

// #id_filepic - 標籤

$("#id_image").css("filter", 
    "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=myscale)"); 
// for declaring. 

    document.getElementById("id_image").filters.item(
     "DXImageTransform.Microsoft.AlphaImageLoader").src = 
     document.getElementById("id_filepic").value; 

注意的是,在設定圖像時,有延遲,你可以retrived圖像尺寸(特別是當寬度>高度),所以爲了得到正確的大小,你應該把這樣的東西。

setTimeout(function() { 
      // get size. 
     }, 1000); 

這是完成我的問題。

謝謝,無論如何。

1

對於如圖1E所示,FileReader API僅支持在Internet Explorer 10.對於IE 8和9,另一種是ActiveX FileSystemObject

請參閱IE and local file reading

+0

好的,但我想要一個按鈕,打開文件對話框(即使在IE9上也是這樣做的),並且首先獲取文件名。 如何在IE8/IE9上打開文件對話框後獲取文件名? 也作爲我的代碼 - 如果我參考input.value,我得到字符串:C:\ fakedpath \ myfile.jpg,所以我有問題使用FileSystemObject。 謝謝:) – Eitan