Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 20.05.2009, 16:40
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Riim Посмотреть сообщение
Правда? Ух, ты!
Знаете, много косяков полезет, когда вы начнете применять эти функции к реальным сайтам.
Когда полезет - вам икнёцццццца

И мне кажется это уже извращение кода. Человек, который не указал DTD скорее всего даже не знает, что такое скрипт, поэтому этот вариант не критичен.
Ответить с цитированием
  #42 (permalink)  
Старый 20.05.2009, 16:44
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Riim, а можно вопрос?! Только чесно!

Вам когда-нибудь приходилось оприделять размер клиентской области руками?! без фрейморков?! Если да, то можно взглянуть на код, которому вы доверяете?!
Ответить с цитированием
  #43 (permalink)  
Старый 20.05.2009, 16:48
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от B~Vladi
Когда эти значения изменятся - тогда и поговорим.
Я был уверен, что они (значения) разные, но все же на всякий проверил. И знаете что: они разные.

Сообщение от B~Vladi
А пока это всё работает - это кроссбраузерно.
Еще раз повторю:
Сообщение от Riim
много косяков полезет, когда вы начнете применять эти функции к реальным сайтам
Ответить с цитированием
  #44 (permalink)  
Старый 20.05.2009, 16:57
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Riim Посмотреть сообщение
Я был уверен, что они (значения) разные, но все же на всякий проверил. И знаете что: они разные.
DOCTYPE:

null, HTML 4.01 Transitional, HTML 4.01, XHTML 1.0 Transitional, XHTML 1.0 Strict, XHTML 1.1.

Opera 9.24, 9.63, 9.64, 10.00 1

alert(document.body.clientWidth==document.documentElement.clientWidth);


Выводит true. Где ж разные?!

Последний раз редактировалось B~Vladi, 20.05.2009 в 17:10.
Ответить с цитированием
  #45 (permalink)  
Старый 20.05.2009, 17:00
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

То же самое и в FF 2.0.0.8, 3.0.8, 3.0.10.

Последний раз редактировалось B~Vladi, 20.05.2009 в 17:10.
Ответить с цитированием
  #46 (permalink)  
Старый 20.05.2009, 17:04
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

То же самое и в IE 6,7,8.

Сдаётся мне, Вы просто издеваетесь...
Ответить с цитированием
  #47 (permalink)  
Старый 20.05.2009, 17:24
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Я много печатаю.
Ответить с цитированием
  #48 (permalink)  
Старый 20.05.2009, 17:58
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от B~Vladi
Вам когда-нибудь приходилось оприделять размер клиентской области руками?! без фрейморков?!
О, это очень интересная тема. Дело в том, что это сейчас есть целая куча разных фреймворков. Можно полазить по ним и найти всю необходимую кроссбраузерность. Раньше их (фреймворков) можно сказать не было, а коду неизвестной древности с форумов доверять было нельзя. Нужно было практически методом "тыка" перебирая разные свойства подбирать правильные для каждого браузера. Все это нужно было примерять к разным вариантам верстки и прочим ситуациям. Например, в IE6 функция, идеально определяющая высоту всего документа (не клиентской части) при 0-1 скроллингах, почему то при обоих скроллингах ошибалась на один пиксель. На все эти опыты уходило очень много времени. Сейчас все намного проще, но по инерции и сейчас иногда случайно возвращаюсь к старым э-э-э, ну пусть будет: способам. Например со строчкой
window.parseFloat(window.opera.version()) < 9.5

как раз связана забавная ситуация: захожу на одну страничку через оперу и с ужасом обнаруживаю, что tooltip появляется явно не в том месте, где должен. Меня это очень удивило, т. к. я точно помнил, что тщательно все протестировал. В том числе и в опере. Установил заметно более старую оперу - все нормально. Начал поочередно, в обратном порядке (от более новой к старой), устанавливать разные версии (я собираю их иногда). В конце концов, вычислил, что изменение произошло при переходе на 9.5 . На все это ушло пол-ночи. На следующий день, вечером, с удивлением обнаружил, что версия PrototypeJs давно обновилась, и за пару минут нашел в новой версии число 9.5 . Т. е. пол-ночи было убито зря.

Это все я к тому, что мне действительно приходилось определять размер клиентской области "руками" (как вы выразились). Причем у меня с этим столько связано, что вам и не снилось.

Таки допечатал.

Сообщение от B~Vladi
Если да, то можно взглянуть на код, которому вы доверяете?!
Он жутко секретный. Но он очень похож на тот, что в prototype-1.6.0.3.js (str: 2689)
Разница лишь в том, что я добавил проверку compatMode и оптимизировал своим чудо-способом, который на этом форуме признан жутко не читабельным.

Сообщение от B~Vladi
Сдаётся мне, Вы просто издеваетесь...
Нет, я на полном серьезе.
У меня так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>blank</title>
	<script type="text/javascript">
window.onload = function() {
	alert([
		document.body.clientHeight,
		document.documentElement.clientHeight
	].join('\n'));
};
	</script>
</head>
<body>
</body>
</html>


Выводятся два разных числа.

Опера такая:

Version - 10.00 alpha
Build - 1139

Но это (разные числа) должно быть верно, для любой (по крайней мере, из тех с какими я сталкивался) оперы. И не только для нее.

Последний раз редактировалось Riim, 20.05.2009 в 18:10.
Ответить с цитированием
  #49 (permalink)  
Старый 20.05.2009, 18:16
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Для чего все эти сложности с массивом?!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>blank</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
window.onload=function() {
	alert(document.body.clientWidth+', '+document.documentElement.clientWidth);
}
</script>
</head>
<body>
</body>
</html>


А вот, что у меня:

Opera 10.00 1, Build - 1355.
1263, 1279.

Opera 9.64, Build - 10487
1263, 1279

Opera 9.24, Build - 8816
1274, 1274

Отличается из-за левой панели.

Разрешение экрана - 1280х1024.

Получается, что свойство document.documentElement.clientWidth показывает настояший размер, в отличии от document.body.clientWidth. Почему же вы тогда утверждаете обратное?!
Ответить с цитированием
  #50 (permalink)  
Старый 20.05.2009, 18:20
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Почему я раньше писал, что document.documentElement.clientWidth==document.bod y.clientWidth в опере?!
Установите margin и padding в 0 для html и body и они совпадут.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паралельное выполнение одной и той-же функции Сеня AJAX и COMET 3 24.01.2009 20:59
Вопрос по функции Flex Общие вопросы Javascript 3 05.12.2008 04:03
Как проверить существование функции Aderba Общие вопросы Javascript 2 14.11.2008 16:09
владелец функции diagnost Общие вопросы Javascript 6 30.10.2008 15:04
Помогите разобраться в повторным обращении к функции, как её обнулить. AdvoGad Общие вопросы Javascript 0 01.09.2008 11:35