【问题标题】:clientWidth difference between Chrome and Firefox?Chrome和Firefox之间的clientWidth区别?
【发布时间】:2011-12-22 23:55:54
【问题描述】:

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

【问题讨论】:

    标签: javascript firefox google-chrome


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多