首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript img onload()

javascript img onload()
EN

Stack Overflow用户
提问于 2011-12-30 12:59:29
回答 3查看 4.2K关注 0票数 4

我正在使用<img> onload函数在已加载的图像上触发调整大小操作。但是我发现如果在一个网页中有两个或更多的<img>带有相同的" src ",这意味着图像是相同的,那么后面的<img>的onload()函数将不会被调用。如何确保即使有一些具有相同src的<img>也能正确地调整所有<img>的大小呢?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-30 13:05:46

这是因为您的浏览器实际上正在缓存第一个图像。因此,当您再次尝试加载相同的"src“时,它会被缓存在本地,并且不会真正触发onload。要使其始终加载,可以向查询字符串追加一个唯一的值。

票数 2
EN

Stack Overflow用户

发布于 2011-12-30 13:17:57

与其为每个<img/>使用单独的onload处理程序,为什么不只对window使用单个onload事件呢?此事件在加载完所有内容(如所有图像)后触发,因此您可以只在单个处理程序中处理每个图像。类似于:

代码语言:javascript
复制
function processAllImages()
{
    var imgElts = document.getElementsByTagName('img');
    for (var i=0; i<imgElts.length; i++)
    {
        processImage(imgElts[i]); // TODO write this function
    }
}

window.onload = processAllImages;
票数 1
EN

Stack Overflow用户

发布于 2011-12-30 14:56:19

我以前也问过类似的问题。

看看这个:Javascript/jQuery: How to detect img is fully downloaded or not?

简而言之,你可以使用img标签的'complete‘属性。

在绑定load事件之前检查它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8676312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档