当<img>标签的currentSrc发生变化时,是否触发了Javascript事件?

awi*_*ery 5 javascript jquery javascript-events

假设我有一个<img>标签:

<img id="my_tag" src="/default.jpg" srcset="/small.jpg 500w, /medium.jpg 1000w, /large.jpg 2000w">
Run Code Online (Sandbox Code Playgroud)

当我加载页面时,Javascript可以告诉我srcset它正在使用哪个:

document.getElementById("my_tag").currentSrc
Run Code Online (Sandbox Code Playgroud)

如何检测currentSrc更改并触发事件?

避免"重复"的呼喊!我可以确认它不会在Chrome中使用DOM MutationObserver 代码,使用jQuery observe或使用onload事件触发:

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

我认为这是因为当srcset使用它时,当currentSrc更改时它似乎不更新DOM.

rob*_*obC 3

您可以使用图像的“onload”事件:

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

关于跨浏览器图像加载事件处理的相关文章

  • 如果您想测量“currentSrc”何时发生变化但在图像加载之前该怎么办?例如,如果您想显示加载指示器,这可能很有用。您需要一种方法来知道图像请求何时开始和停止,并且“currentSrc”可以随时更改,例如在调整大小时或“sizes”是否更改时。 (3认同)