客户端Chrome和Firefox之间的宽度差异?

时间:2011-12-22 23:55:54

标签: javascript firefox google-chrome

我正在编写一个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);
        }

1 个答案:

答案 0 :(得分:2)

使用clientWidth来确定图片是否正在加载,而不是检查images[i].complete(取决于是否显示替代文字或损坏的图片图标)。