Javascript 如何捕捉在同一页面上多次加载的图像上的图像加载事件?
我有一个动态变化的页面,在其中的图像插入在某个时间或其他。 我想知道图像(具有给定的img src、alt属性)加载到此页面的每个时间实例。 **PS页面上可以有任意数量的图像(相同类型)。 图像不会被缓存,而是动态地插入到页面中Javascript 如何捕捉在同一页面上多次加载的图像上的图像加载事件?,javascript,jquery,html,Javascript,Jquery,Html,我有一个动态变化的页面,在其中的图像插入在某个时间或其他。 我想知道图像(具有给定的img src、alt属性)加载到此页面的每个时间实例。 **PS页面上可以有任意数量的图像(相同类型)。 图像不会被缓存,而是动态地插入到页面中 $("img").one("load", function() { // do stuff }).each(function() { if(this.complete) $(this).load(); }); 上面的代码示例对我不起作用 **在这里,您可以做
$("img").one("load", function() {
// do stuff
}).each(function() {
if(this.complete) $(this).load();
});
上面的代码示例对我不起作用
**在这里,您可以做一件事,您可以注册一个DOMNodeInserted事件,当页面中添加任何DOM节点时,该事件将被触发。然后您可以检查添加的元素是否为img。如果它是映像,则可以在其上注册onload事件
$(document).on('DOMNodeInserted', function(event) {
console.log($(event.target).is('img'));
if($(event.target).is('img')) {
$(event.target).one("load", function() {
// do stuff
console.log("one", arguments)
});
}
});
图像加载示例
$('body').append($("<img src='http://www.freedomwallpaper.com/nature-wallpaper/nature-hd-wallpapers-water.jpg'>"))
您可以继续使用这种方法…如何在
DOM
中添加图像?给我们看看你的代码?有很多方法可以从附加的DOM
中找到图像元素@JitinMaherchandani:上述注释是否解决了您的问题?@ParagBhayani不,它没有,因为在我的例子中,图像不是缓存的,而是动态添加到页面中的。您对图像的加载有任何控制吗?或者他们在哪里装载?
setInterval(function() {
$.each($('img'), function(index, image) {
console.log(image.complete)
});
}, 1000)