2012-10-31 36 views
1

對於IE驗證圖像,我用這個代碼圖像驗證returing -1 IE

var pic = document.getElementById('photo').value; 
$('#image').attr('src',pic); 
var imgbytes = document.getElementById('image').fileSize; 

但imgbytes將返回-1所有time.Why會出現這種情況?

+0

這可能是競爭條件。請確保在評估imgbytes時已經加載圖像 – ynh

+0

@ynh。謝謝。但我已經使用while(!document.getElementById('image')。fileSize) { } var imgbytes = document.getElementById('image')。fileSize; ,以確保圖像已經加載。但仍然不工作。是否有任何其他方式來確保圖像加載。 –

回答

1

很可能是因爲在查詢文件大小時圖像還沒有足夠的時間加載。您可以通過切換到具有類似回調的異步模型來驗證並解決此問題:

var img = document.getElementById('image'); 

img.onload = function() { 
    var imgbytes = img.fileSize; 
    alert(imgbytes); 
}; 

img.src = document.getElementById('photo').value; 
+0

@ jon.謝謝。我試過這個,但img.onload沒有被調用,並沒有得到alert.ie alert(imgbytes);不管用。 –

+0

@NidhinzzOwn:[適用於我](http://jsfiddle.net/HpxDm/)。 – Jon