Некорректная работа get(set)Attribute в IE для элементов img
Вопрос, возможно, уже неоднократно обсуждался - но я ничего конкретного не нашел, так что приступим.
Использую библиотеку colorbox, для каждого элемента галереи которой ресайзится как содержимое, так и потом подгоняется размер самого colorbox-a. В опере, фф и хроме все работало ок, но проверив IE я обнаружил проблему. После дебага проблема оказалась в: var img=document.getElementById(sel); var h=img.getAttribute("height"); var w=img.getAttribute("width"); alert(h); alert(w); где для всех браузеров выводит корректные значения атрибутов, а в ИЕ выводит 0. img - точно нужный элемент, даже IE правильно выводит его айдишник. Собственно, для элементов div работает корректно, а вот для img нет, так что проблема, наверное, с доступом к атрибутам элемента img . Если сильно туплю(вебом занимаюсь недавно) - можете отвести на мне душу, но ответы по существу приветствуются. Общий код обработчика, который вызывается после загрузки элемента библиотеки: $(document).bind('cbox_load', function(){ var str=$.colorbox.element()[0].getAttribute("href"); var image_index=(str).indexOf("cont")+4; image_index=str.substr(image_index); var sel='img_cont'+image_index; //var sel1='div'+image_index; var img=document.getElementById(sel); //var div=document.getElementById(sel1); var h=img.getAttribute("height"); var w=img.getAttribute("width"); alert(h); alert(w); Прошу прощения, что jquery вперемешку с js, по-всякому экспериментировал. Если что, ссылка - http://stud.lasoon.com.ua/kiev/news/...ite-model-look (речь о галерее внизу страницы) |
|
Добавил, но зачем? Я использую не эти img, а с id="img_cont{каунтер смарти}". А эти картинки - уменьшенные копии для галереи
|
Цитата:
var img=$('#+'sel); var h=$(img).height(); var w=$(img).width(); alert(h); alert(w); |
Так было изначально, потом подумал, может у IE проблемы с jq, мало ли, но результат один, а точнее - его отсутствие
|
back to back,
Встройте в картинку onload="CallFunk(this)" function CallFunk(a) { alert('W='+a.width+('H='+a.height) } Думаю проблема в тестировании размеров: недоуспев подгрузить картинку Поскольку у превью размеры показываются в ИЕ корректно, отличия картинок ток в загруженности |
выводит в IE те же нули, а в других браузерах нормальные значения
|
Цитата:
onload="CallFunk($(this))" function CallFunk(a) { alert('W='+a.width()+('H='+a.height()) } Ксать в ИЕ есть траблы с реальными размерами, если картинка скрыта display:none обычно cкрывают position:absolute;z-index:-2000; (*Или тестить когда картинка развернута, а не по onload |
Вы, я вижу, знаете толк в извращениях ;) Возвращается код, о предназначении которого остается только догадываться.
|
То есть, Вы предлагаете на время обработки попытаться делать ее видимой? Вроде пробовал уже, не помогает
|
Часовой пояс GMT +3, время: 15:30. |