Я автор данной темы. Создал ее еще 3 года назад.
psfdek, тот код который Вы предложили будет работать только если картинка уже отображалась ранее в браузере, т.е. была кэширована. Об этом кстати я и написал в первом сообщении 3 года назад. Правильно будет так: var href = "http://upload.wikimedia.org/wikipedia/ru/8/8d/ImageComicsLogo.gif"; var img = new Image(); img.onload = function() { var intImageWidth = this.width; var intImageHeight = this.height; alert(intImageWidth + "px; " + intImageHeight + "px;"); } img.src = href; |
Подскажите почему так происходит
function imgSize(href){ var img = new Image(); img.src = href; img.onload = function() { return img; }; return img; } y=URL.createObjectURL(files[index]); var imgZz = imgSize(y); alert(); console.log(imgZz.width); console.log(imgZz.height); Если из кода убрать - alert();, тогда размеры не выводяться. НО! если поставить alert();, тогда размеры выводятся как положено и их можно передавать дальше. У меня проблема в том что размеру нужны для дальнейшей работы с изображением, а не просто для их вывода. А выводить alert(); после каждого изображение не есть выход. может есть какой-то аналог alert(); или событие которое должно произойти, после чего я смогу получить размеры Подскажите пжлста |
just_do_it,
в 6 строке вы получите размер. алерт нужен чтоб вы дождались ответа сервера. мыслить асинхронно. |
Цитата:
но как мне добиться получения размеров в 15 и 16 строках без алерта?:thanks: |
Размер ты получишь не раньше, чем загрузится картинка. Следовательно только когда она загрузится, можно получить размер. Иными словами когда картинка загрузится, ты получишь размер, то есть не раньше чем она загрузится, ибо до этого момента измерять нечего. Дошло?
img.onload = function(){ console.log(this.width); console.log(this.height); }; |
warren buffet, все теперь понял)), спс
|
Часовой пояс GMT +3, время: 17:41. |