Сообщение от 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
Но это (разные числа) должно быть верно, для любой (по крайней мере, из тех с какими я сталкивался) оперы. И не только для нее.