2010-07-26 60 views
5

我在我的DOM中有一個img元素。基於用戶操作,我計算圖像的URL,並更改圖像元素的src屬性(使用jQuery)。新圖像的尺寸與舊圖像的尺寸不同。這在Safari上運行良好,但IE不會調整新圖像大小的顯示大小。我有一個.load處理程序對src變化(我在其中對img元素的類進行了一些更改)...如果我知道如何訪問圖像的實際大小,我可以設置img元素的高度和寬度屬性。這些值是否可以以某種方式訪問​​?如果沒有,有沒有其他方式讓圖像以新尺寸顯示?更改圖像源(img)標記不會在IE上調整大小

回答

0

我會調查其他的解決方案,但你的確可以訪問這些信息直接

var myImage = new Image(); 
myImage.src = $("image selector goes here").attr('src'); 
myImage.onload = function() { 
    alert(myImage.width + "," + myImage.height); 
} 
+1

感謝您的建議,但可惜當I *變化*圖像的src和裝入新的大小的圖像,img元素仍報告的初始寬度和高度值,而不是新加載的圖像(上IE,也就是說;正如我所說的那樣,圖像被Safari調整大小)。 – Zhami 2010-07-26 19:27:11

+0

嘗試直接加載圖像,而不是'attr('src')'方法。所以像'myImage.src =「http://example.com/awesome.gif」'然後檢查寬度。我看不出如何報告相同的寬度,因爲它應該不知道。這是一種痛苦,因爲它向圖像發送了兩個請求到你的服務器,但是如果有緩存則不應該成爲問題。 – 2010-07-26 19:34:47

+0

我懷疑渲染引擎是用第一張圖片做佈局的。隨後的圖像加載不會強制重新佈局。我已經重寫了我的整個方法來避免這個問題。 – Zhami 2010-07-27 01:38:44

1

我有同樣的問題,但這種照顧它。

$("#img").removeAttr("height").removeAttr("width").attr("src", newsrc); 
+0

我不明白這是如何工作的。糾正我,如果我錯了,但從我可以看到高度和寬度不是DOM屬性 - 風格是然而。刪除'風格'在Chrome中可用,請參閱我的答案。 – tronbabylove 2013-01-06 17:34:15

3

我在Chrome,IE瀏覽器不工作,但我有同樣的問題,我想我會分享給其他人就這個問題說絆倒。我通過改變源,即:

myImg.removeAttribute( '風格')之前去除從圖像中 「style」 屬性解決了這個的setAttribute( 'SRC',newSrc)。

+0

工程就像一個魅力。 – 2013-08-21 10:02:40

相關問題