Получить размер изображений на страницах после того, как он вызвал функцию изменения размера загрузки - PullRequest
0 голосов
/ 22 января 2012

Я пытаюсь написать JavaScript для извлечения изображений в HTML, ширина и высота которых превышают указанное значение.Я использую DOM для извлечения фотографий.Вот проблема:

Страницы, которые я хочу извлечь, на самом деле имеют JavaScript с именем "checkimagesize".Каждый будет вызывать функцию загрузки, например:

<img src="./01_files/mobile01-cdbd8.jpg" id="http://attach.mobile01.com/attach/201112/mobile01-cdbd8.jpg" onload="checkimagesize(this.id,this.width,this.height)" />

После каждого вызова "checkimagesize" я использую DOM для извлечения изображений.Ширина и высота - все ноль.(Картинки изменяются с помощью функции загрузки)

Кто-нибудь знает, как получить фактическую ширину и высоту этих картинок после вызова функции изменения размера?*

function checkimagesize(image, wi, hi)
{
    var wo = wi + 40;
    var ho = hi + 40;
    var resize = false;
    var imax = 640;
    if (wi > imax) {
        rating = wi / imax;
        wi = Math.ceil(wi / rating);
        hi = Math.ceil(hi / rating);
        resize = true;
    }

    if (resize) {
        reimg = document.getElementById(image);
        reimg.width = wi;
        reimg.height = hi;
        reimg.onclick = function () {window.open(image, '', 'resizable=yes,status=yes,scrollbars=yes,width='+wo+',height='+ho);};
        reimg.style.cursor = 'pointer';
    }
}

мой код:

listPics = document.images;
listPics[i].width 
listPics[i].height

1 Ответ

0 голосов
/ 22 января 2012

Возможно, вы пытаетесь получить доступ к свойствам изображения до того, как они закончили загрузку.Попробуйте выполнить свой код после события load окна (когда все элементы страницы завершат загрузку):

window.onload = function () {
    for (var i = 0; i < document.images.length; i++) {
        var img = document.images[i];  
        console.log("image size: " + img.width + "×" + img.height);
    }
};
...