Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.06.2012, 14:19
Новичок на форуме
Отправить личное сообщение для back to back Посмотреть профиль Найти все сообщения от back to back
 
Регистрация: 09.06.2012
Сообщений: 8

Некорректная работа 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 (речь о галерее внизу страницы)
Ответить с цитированием
  #2 (permalink)  
Старый 09.06.2012, 14:38
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Тест - Добавьте в конец страницы
<script type="text/javascript" >
var HeigtandWidth_array=[];
$("div.gallery_wrapper li a.cb_nonactive img").each(function(){
 HeigtandWidth_array.push($(this).attr("src")+'; H='+$(this).height()+';W='+$(this).width()+'\n');
});
 alert(HeigtandWidth_array)
</script>



Последний раз редактировалось Deff, 09.06.2012 в 14:46.
Ответить с цитированием
  #3 (permalink)  
Старый 09.06.2012, 14:50
Новичок на форуме
Отправить личное сообщение для back to back Посмотреть профиль Найти все сообщения от back to back
 
Регистрация: 09.06.2012
Сообщений: 8

Добавил, но зачем? Я использую не эти img, а с id="img_cont{каунтер смарти}". А эти картинки - уменьшенные копии для галереи
Ответить с цитированием
  #4 (permalink)  
Старый 09.06.2012, 14:55
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,234

Сообщение от back to back
var img=document.getElementById(sel);
var h=img.getAttribute("height");
var w=img.getAttribute("width");
alert(h); alert(w);
Если уж используете jQuery, то почему бы его не использовать полностью?
var img=$('#+'sel);
var h=$(img).height(); 
var w=$(img).width();
alert(h); alert(w);
Ответить с цитированием
  #5 (permalink)  
Старый 09.06.2012, 14:58
Новичок на форуме
Отправить личное сообщение для back to back Посмотреть профиль Найти все сообщения от back to back
 
Регистрация: 09.06.2012
Сообщений: 8

Так было изначально, потом подумал, может у IE проблемы с jq, мало ли, но результат один, а точнее - его отсутствие

Последний раз редактировалось back to back, 09.06.2012 в 15:06.
Ответить с цитированием
  #6 (permalink)  
Старый 09.06.2012, 15:10
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

back to back,
Встройте в картинку onload="CallFunk(this)"

function CallFunk(a) {
 alert('W='+a.width+('H='+a.height)

}


Думаю проблема в тестировании размеров: недоуспев подгрузить картинку

Поскольку у превью размеры показываются в ИЕ корректно, отличия картинок ток в загруженности

Последний раз редактировалось Deff, 09.06.2012 в 15:21.
Ответить с цитированием
  #7 (permalink)  
Старый 09.06.2012, 15:17
Новичок на форуме
Отправить личное сообщение для back to back Посмотреть профиль Найти все сообщения от back to back
 
Регистрация: 09.06.2012
Сообщений: 8

выводит в IE те же нули, а в других браузерах нормальные значения
Ответить с цитированием
  #8 (permalink)  
Старый 09.06.2012, 15:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Сообщение от back to back
выводит в IE те же нули, а в других браузерах нормальные значения
А если так ?
onload="CallFunk($(this))"

function CallFunk(a) {
 alert('W='+a.width()+('H='+a.height())

}


Ксать в ИЕ есть траблы с реальными размерами, если картинка скрыта display:none
обычно cкрывают position:absolute;z-index:-2000;

(*Или тестить когда картинка развернута, а не по onload

Последний раз редактировалось Deff, 09.06.2012 в 15:27.
Ответить с цитированием
  #9 (permalink)  
Старый 09.06.2012, 15:26
Новичок на форуме
Отправить личное сообщение для back to back Посмотреть профиль Найти все сообщения от back to back
 
Регистрация: 09.06.2012
Сообщений: 8

Вы, я вижу, знаете толк в извращениях Возвращается код, о предназначении которого остается только догадываться.
Ответить с цитированием
  #10 (permalink)  
Старый 09.06.2012, 15:29
Новичок на форуме
Отправить личное сообщение для back to back Посмотреть профиль Найти все сообщения от back to back
 
Регистрация: 09.06.2012
Сообщений: 8

То есть, Вы предлагаете на время обработки попытаться делать ее видимой? Вроде пробовал уже, не помогает
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректная работа ф-ции Dimonya Events/DOM/Window 7 15.04.2010 14:12
Работа с img ссылки vlad-berkut Events/DOM/Window 6 02.03.2010 09:45
Некорректная работа lightwindow в ie6,7,8 nastya Internet Explorer 1 20.11.2009 07:52
работа для знающего java-script rrlqqq Работа 1 03.05.2009 13:24
Есть небольшая работа для пишущего на javascript. Trooper Работа 0 30.04.2009 08:57