2012-06-22 97 views
0

我正在處理某些問題,並且問題得到了解答,但我需要爲此使用其他方法。 我有一個如何工作的jsFiddle。 http://jsfiddle.net/TbZzH/4/輸入類型文件沒有正確地將圖像放入圖像標籤

這是很好,很花哨,但是當我在我的代碼中這樣做,它會告訴我,data.files [0]不起作用,並且被認爲是未定義的。它也不識別FileReader()對象。

我的代碼如下,使用jsFiddle作爲我工作的例子。

$(function(){ 
    $("input[type='file'].attribute").on("change", function() { updateDesigner(this); }); 
}); 
function updateDesigner(input){ 
    var t = input; 
    if ($(input).attr("type") == 'file'){ 
    try{ 
     var data = $(t)[0]; 
     var file = data.files[0]; //<------ FAILS HERE. .files is an undefined attr. 
     var reader = new FileReader(); //<--- working around it, doesnt understand this object as well 
     reader.onload = function (e) { 
      value = e.target.result; 
     } 
     reader.readAsDataURL(file); 
    }catch(errrrr){ 
     alert("error putting image into image tag: "+errrrr.toString()); 
    } 
    } 
    srcFunction(value); //takes the value and applied it to the src attr of the image tag. 
} 

我想將數據轉換爲值,一切都會平穩運行,但我不確定發生了什麼。

+0

只需使用'input.files [0]'。我不知道$(t)[0]應該做什麼? – Gerben

+0

是的,我試過了,那也不管用。它表示文件未定義等。「無法獲取屬性0的值,它爲空或未定義」,因爲文件似乎是未定義的。 – Fallenreaper

+0

哦,一個大問題:我在IE中運行。我在看Object.keys($(input)[0])和.... IE不識別它們的螞蟻,只真的返回一個jqueryobjectreference字符串。在GoogleChrome中運行它包含所有對象並解決此錯誤。啊。瀏覽器特定的bs很煩人 – Fallenreaper

回答

0

雖然IE工程與一些例子,這裏的問題似乎涉及到網站的「信任」和「確保安全性」

去出現在計算機屏幕上的靜態圖像,我需要它受信任的站點以及重新路由到https