我正在编写一个javascript函数,等待所有图像都加载到网页上,然后修改它们的宽度以使它们适合框。它就像Chrome上的魅力(clientWidth在加载图像之前为0)但在Firefox上它会立即变为一些微小的数字(在我的情况下是24而不是〜700)所以实际的缩小部分发生在图像加载之前(所以它保持相同的大小)。任何修复想法?
function shrink() {
var images = document.getElementsByTagName("img");
var interval = setInterval(function() {
var exit = 0;
for (var i = 0; i < images.length; ++i) {
if (images[i].clientWidth != 0) exit += 1;
}
if(exit == images.length ) {
clearInterval(interval);
for (var i = 0; i < images.length; ++i) {
if(images[i].clientWidth > 600) images[i].style.width = 400;
}
}
},100);
}
答案 0 :(得分:2)
使用clientWidth
来确定图片是否正在加载,而不是检查images[i].complete
(取决于是否显示替代文字或损坏的图片图标)。