2011-12-22 17 views
0

私は、すべての画像がWebページに読み込まれるまで待ってから、ボックスに収まるように幅を変更するJavaScript関数を書いています。それはクロムの魅力のように動作します(clientWidthは画像がロードされるまで0です)。しかし、Firefoxでは、実際には画像がロードされる前に実際の縮小部分が起こるように、同じサイズのままです)。どんな修正アイデアですか?代わりclientWidthをチェックするclientWidthはChromeとFirefoxの違いですか?

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); 
     } 

答えて

2

、画像がロードされるかどうかを決定するためにimages[i].completeを使用する(代替テキストまたは壊れた画像アイコンが表示されているかどうかに依存する、と言います)。

+0

ChromeとFirefoxの両方で動作しています。 – kviktor

関連する問題