2010-02-08 155 views
0

使用Javascript更改src ...第一次正確設置寬度和高度屬性。第二次他們不改變。爲什麼?設置img src屬性時寬度和高度不會改變

所以我有這個空白圖像在我的網頁... <img id="imgCropImage" />

這樣的想法是,用戶每次上傳的圖像,上傳的UploadComplete回調將這個圖片的src設置爲具有圖像剛剛上傳,以便它可以裁剪。 我然後使用此圖片的高度寬度屬性爲了創建一個放大的裁剪預覽。

它第一次效果很好。瀏覽器或DOM或東西自動設置圖像加載後通過DOM訪問的img的高度和寬度屬性。這很漂亮。

如果用戶上傳了錯誤的圖片,我想讓他們上傳不同的圖片。但是,這次,通過javascript訪問的img寬度和高度屬性與之前的圖像保持一致。新圖像正確顯示在它自己的寬度和高度上,只是標籤的屬性不會隨着新的src一起更改。

有誰知道爲什麼會發生這種情況?或者甚至更好,如何在加載新的src時確定性地獲取img的高度和寬度?

我< 3 stackoverflow和我< 3你。

+0

還注意到,如果設置了CSS高度和寬度樣式,DOM將返回這些值。 – HaterTot 2010-02-09 17:40:38

回答

2

如何「移除」高度和寬度屬性。

$('#imgCropImage').removeAttr('height'); 
$('#imgCropImage').removeAttr('width'); 

這應該「重置」它。 (如果你使用的是JQuery)。

+0

做了伎倆,謝謝YOUUU – HaterTot 2010-02-09 17:35:57

2

您是否嘗試用新的src替換之前的圖像?

var newImg = document.createElement('IMG'); 
    newImg.src = newSrc; 
    oldImg.parentNode.replaceChild(newImg, oldImg); 
+0

我敢肯定這會工作,但我儘量避免使用JavaScript添加/刪除元素,因爲它感覺凌亂。 – HaterTot 2010-02-09 17:37:50