Показать сообщение отдельно
  #7 (permalink)  
Старый 12.10.2014, 00:23
Аспирант
Отправить личное сообщение для Boolean_Type Посмотреть профиль Найти все сообщения от Boolean_Type
 
Регистрация: 02.02.2014
Сообщений: 48

Сообщение от kostyanet Посмотреть сообщение
/* пустой объект, событие load которого сработает всегда, в любом даже самом хитрожопом браузере типа Хрома */
  var img=new Image(); 
  /* запрограммировать событие загрузки надо до впаривания src */
  img.onload=function(){
   /* внутри кложи this - это оно само, загруженная картинка */
    im.src=this.src; /* теперь можно профыкать в src элемента */
   /*  у этого объекта нет еще стилей, 
     но зато есть нормальные height, width */
    alert(this.width); // тут все понятно
  };
  /* с этого момента браузер кОчает картинку в пустой объект */
  im.src='адрес_картинки';
Спасибо, работает! Вот только можете мне объяснить, за счёт чего? Не пойму, в чём тут колдунство:
im.src=this.src;
и почему запрограммировать событие загрузки надо до впаривания src. Объсните, пожалуйста, нубу)

Ещё интересный момент, забыл упомянуть в 1ом посте:
var b = document.getElementById('b');
var im = document.getElementById('fullimage');
im.setAttribute('src', '1.jpg');
console.log(getComputedStyle(im)); //в консоли уже прописано св-во width, причём корректно! Т.е., getComputedStyle() уже вернула коллекцию CSS-стилей!
alert(getComputedStyle(im).width); //но здесь же 0px. Какого рожна?)
Ответить с цитированием