preciso obter a dimensão de uma imagem que retorna da url, porém consigo exibir em um alerta mas não consigo pegar utilizando return. o que estou fazendo de errado?
Note que você não pode fazer return do tamanho da imagem antes de ela ser carregada (src = “url_da_imagem”), por isso você precisa passar o valor para as variáveis que precisam dele, ou chamar outra função dentro de onload para pegar o valor que você quer. Se você fizer:
let dimensoes = ObterDimensao();
Terá undefined em dimensoes, pois a imagem é carregada de forma assíncrona e a função ObterDimensao retorna undefined antes mesmo de a imagem ser carregada. O que você precisa é algo como:
Eu quero obter o return e não alert.
pois preciso pegar esse retorno pra aplicar em outra função…
T
TerraSkilll1 like
Como já expliquei, você não pode usar o return porque a carga da imagem é assíncrona, então você não tem o tamanho da imagem antes de ela ser carregada.
Se você precisa do retorno em outro lugar, chame essa função que precisa do retorno de dentro do onload ou da sua função teste2.
Abraço.
C
cleitonti
mas né isso que fiz assim? dentro de onload estou chamando a função teste2.
T
TerraSkilll
Se você está executando no console do navegador, a carga da imagem pode estar sendo bloqueada, por ser de um site externo. Por isso, sua img fica como undefined. Adicione o img.onerror para confirmar isso. Algo como:
functionObterDimensao(){varimg=newImage();img.onload=function(){varv=this.width+'x'+this.height;teste2(v)}img.onerror=function(error){console.log('Deu erro ao carregar a imagem');}img.src='http://www.google.com/intl/en_ALL/images/logo.gif'}functionteste2(v){return(v);}ObterDimensao();