Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.04.2009, 10:46
Новичок на форуме
Отправить личное сообщение для art-danilov Посмотреть профиль Найти все сообщения от art-danilov
 
Регистрация: 05.03.2009
Сообщений: 8

ПРоблема с clientHeight в Сафари
Дано: document.getElementById('center').clientHeight = 885пикс - во всех браузерах, кроме сафари, в сафари - 1226 пикс.

Собственно, вопрос - почему так и как такое можно исправить??

(забыл сказать - это <div id="center">)

(за 30 сек решение в инете не нашел :-D)

Последний раз редактировалось art-danilov, 15.04.2009 в 10:55.
Ответить с цитированием
  #2 (permalink)  
Старый 15.04.2009, 11:09
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

А clientHeight у всего документа правильный?

Если так, то используя clientHeight документа, scrollTop документа и offsetHeight вашего элемента можно вычислить его реальный clientHeight.

Последний раз редактировалось Riim, 15.04.2009 в 11:11.
Ответить с цитированием
  #3 (permalink)  
Старый 15.04.2009, 11:14
Новичок на форуме
Отправить личное сообщение для art-danilov Посмотреть профиль Найти все сообщения от art-danilov
 
Регистрация: 05.03.2009
Сообщений: 8

Сообщение от Riim Посмотреть сообщение
А clientHeight у всего документа правильный?

Если так, то используя clientHeight документа, scrollTop документа и offsetHeight вашего элемента можно вычислить его реальный clientHeight.
у всего документа не проверял, но заметил вот что - если ID таблицы писать, то все браузеры показывают одну и ту же "правильную" высоту, для дива почему-то криво, в гугле вчера было всё норм, сегодня уже он показывает то же, что и сафари глюки что ли?)
Ответить с цитированием
  #4 (permalink)  
Старый 15.04.2009, 11:20
Новичок на форуме
Отправить личное сообщение для art-danilov Посмотреть профиль Найти все сообщения от art-danilov
 
Регистрация: 05.03.2009
Сообщений: 8

черт, наверное, проще объяснить проблему: если три колонки(div) - они флоат лефт, задача: узнать какая из колонок длиннее и выровнять остальные 2 по ней... во всех браузерах кроме сафари и хрома всё ок...

текущий скрипт:

<script type="text/javascript">
	divHeight = new Array(3);
	divHeight[0] = document.getElementById('left').clientHeight;
	divHeight[1] = document.getElementById('center').clientHeight;
	divHeight[2] = document.getElementById('right').clientHeight;
	var max_num = divHeight[0];
	for (i=0; i<3; i++) {
		if (divHeight[i] > max_num) { max_num = divHeight[i]; }
		alert(i + '->' + divHeight[i]);
	}
	alert(max_num); 
	for (i=0; i<3; i++) {
		if(divHeight[i] <= max_num) divHeight[i] = max_num - divHeight[i];
		alert(i + '->' + divHeight[i]);
	}
	document.getElementById('left').style.height = document.getElementById('left').clientHeight + divHeight[0] + 'px';
	document.getElementById('center').style.height = document.getElementById('center').clientHeight + divHeight[1] + 'px';
	document.getElementById('right').style.height = document.getElementById('right').clientHeight + divHeight[2] + 'px'; 
</script>


лефт, сентер, райт - это эти дивы.


P.S. Алерты как раз и показывают разницу в вычислениях.
Есть соображения?

Последний раз редактировалось art-danilov, 15.04.2009 в 11:21. Причина: PS
Ответить с цитированием
  #5 (permalink)  
Старый 15.04.2009, 11:28
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

У вас решение явно усложненное. Много лишнего. Посмотрите здесь: http://tvarb.habrahabr.ru/blog/56772/
Ответить с цитированием
  #6 (permalink)  
Старый 15.04.2009, 11:36
Новичок на форуме
Отправить личное сообщение для art-danilov Посмотреть профиль Найти все сообщения от art-danilov
 
Регистрация: 05.03.2009
Сообщений: 8

у меня написано в принципе то же, только другими словами... но у него OffsetHeight - оно везде нормально работает?


Проверил с оффсетхеит - показания те же

Последний раз редактировалось art-danilov, 15.04.2009 в 12:18.
Ответить с цитированием
  #7 (permalink)  
Старый 15.04.2009, 15:23
Новичок на форуме
Отправить личное сообщение для art-danilov Посмотреть профиль Найти все сообщения от art-danilov
 
Регистрация: 05.03.2009
Сообщений: 8

Проблема решилась сама собой совершенно случайно, когда я хотел подключить файл с другим скриптом.
написал
<script type="text/javascript" src=""></script>

(с пустым СРЦ) и clientHeightстал считаться правильно и в сафари и в хроме... собственно, теперь возник вопрос - в чем косяк в этих браузерах?
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема работы jQuery.corner на Webkit freebit jQuery 3 17.01.2010 01:23
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47
проблема с обработкой DIV nerik AJAX и COMET 2 22.08.2008 17:40
Проблема с маркером kostian02 Общие вопросы Javascript 0 23.06.2008 16:10
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 16:56