2015-05-14 26 views
3

假設我有一個<img>標籤:當currentSrc爲<img>標籤更改時,是否觸發了Javascript事件?

<img id="my_tag" src="/default.jpg" srcset="/small.jpg 500w, /medium.jpg 1000w, /large.jpg 2000w"> 

當我加載網頁,使用Javascript能告訴我該srcset它使用:

document.getElementById("my_tag").currentSrc 

如何檢測時currentSrc變化和火一個事件?

爲了避開「重複!」的呼聲我可以證實它不會在Chrome中使用DOM MutationObserver code here,使用jQuery observe,或使用onload事件觸發:

var my_tag = document.getElementById("my_tag"); 
my_tag.onload = function(){ 
    alert("CHANGED"); 
    console.log("Src changed to " + my_tag.currentSrc); 
}; 

我想這是因爲當使用srcset似乎更新DOM不當currentSrc改變時。

+1

的可能重複相關的職位[DOM的點火事件屬性改變(http://stackoverflow.com/questions/4561845/firing-event-on-dom-attribute-change) –

回答

1

您可以使用圖像的「的onload」事件:

var my_tag = document.getElementById("my_tag"); 
my_tag.onload = function(){ 
    console.log("Src changed to " + my_tag.currentSrc); 
} 

Cross-browser image onload event handling

+0

你測試過了嗎?我剛剛在Chrome中試過它,甚至沒有開火...... – awidgery

+0

@awidgery是的,我在Chrome 42中測試了它。當一個新的圖像加載了onload事件。 – robC

+0

@awidgery你確定src正在改變?你沒有指定大小,即'sizes =「50vw」' – robC

相關問題