Разница в ширине клиента между Chrome и Firefox? - PullRequest
0 голосов
/ 23 декабря 2011

Я пишу функцию javascript, которая ждет, пока все изображения будут загружены на веб-страницу, а затем изменяет их ширину, чтобы разместить их в окне. Он работает как Charm в 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 Ответ

2 голосов
/ 23 декабря 2011

Вместо проверки clientWidth (который зависит, например, от того, отображается ли, например, значок альтернативного текста или разорванного изображения), используйте images[i].complete, чтобы определить, загружается ли изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...