Показать сообщение отдельно
  #1 (permalink)  
Старый 22.04.2011, 13:33
Интересующийся
Отправить личное сообщение для Lockpickup Посмотреть профиль Найти все сообщения от Lockpickup
 
Регистрация: 22.04.2011
Сообщений: 12

Браузер не успевает определить высоту вновь созданного через XMLHttpRequest элемента
Господа, подскажите как корректно (!) определить высоту элемента (в данном случае <DIV id="displayer_type">) в который загружаются данные через XMLHttpRequest.

Итак:
1. Изначально элемент <DIV id="displayer_type"> пуст.
2. Непосредственно загрузка данных (используется mootools)
function processReqChange(){
  var ready=request_obj.readyState;
  if (ready==4){
	  clearTimeout(timeout);
	  if (request_obj.status == 200) {//все ОК, показываем новый элемент с данными от сервака
		$(displayer_type).innerHTML=request_obj.responseText;
		
                      /***********************************
		ОТОБРАЗИТЬ ОСНОВНОЕ СОДЕРЖИМОЕ СТАТЬИ*/
		var my_Hidder =$(eval(displayer_type+'_hidder'));
		my_Hidder.setStyle('visibility', 'visible');
		my_Hidder.set('tween', {transition: myTransition.easeOut});
		my_Hidder.tween('height',  $(displayer_type).clientHeight+10);
		/***********************************/
	  }
	  else {
		  ErrHandler(1);
		  $(displayer_type).innerHTML="<B>Невозможно найти страницу.</B><BR>Возможно, эта страница была удалена, переименована, или она временно недоступна.";
		  }
	}
  else{
		$(displayer_type).innerHTML="<CENTER>Загрузка...<BR><IMG SRC="+preload_img+" BORDER=0></CENTER>";
  }}

3. Скрипт PHP к которому обращается XMLHttpRequest возвращает HTML таблицу с рисунками.
4. Цель поставить значение высоты элемента my_Hidder равным значению высоты, того элемента, куда производилась загрузка данных от скрипта PHP (my_Hidder.tween('height', $(displayer_type).clientHeight+10)

После загрузки свойство clientHeight элемента displayer_type далеко не всегда оказывается равным высоте таблице, переданной PHP скриптом.

Причем эта ошибка не носит систематического характера. То все ОК, то значение my_Hidder не устанавливается в соответствие со значением $(displayer_type).clientHeight+10
Ответить с цитированием