Pxx
|
Новичок
|
|
|
Зарегистр: 06/12/2005
|
Сообщений: 9
|
Из: Ukraine, Kiev
|
|
Проблеммс с JavaScript
06/12/2005 21:16
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
Все нижеуказанные глюки проверены в Операх 8.0, 8.5, 9
1. Глюк оперы Code:
<script language="javascript" type="text/javascript"> function FLoad() { window.alert (maintable.width+"; "+maintable.height); } </script> ... <body onLoad="FLoad()"> <table width="100%" height="500" border="0" cellpadding="0" cellspacing="0" ID=maintable> ...
В ИЕ выдается алерт: 100%; 500 В опере: 100%; Undefined Получается, что опера знает табличное проперти width но не знает height
2. Глюк оперы Code:
<script language="javascript" type="text/javascript"> function window.onload() { ... } </script>
Такой код прекрасно работает в ИЕ, но полностью игнорируется оперой. Приходится делать так: Code:
<script language="javascript" type="text/javascript"> function Fload() { ... } </script> ... <body onLoad="FLoad()">
2. Глюк ИЕ Code:
document.body.clientHeight
Опера выдает значение 566, т.е. реальную высоту клиентской области ИЕ выдает 1000, т.е. длину документа.
Как это все бороть/обходить?
|
Kildor
|
Operaman
|
|
|
Зарегистр: 10/03/2004
|
Сообщений: 557
|
Из: Россия, Новосибирск
|
|
Re: Проблеммс с JavaScript
07/12/2005 03:52
[Re: Pxx]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
1 — не видя полностью документа, сказать не могу со 100% уверенностью, но в html strict таблица не имеет высоты. Если тебе нужно реальную высоту таблицы, то пользуйся document.geElementById('maintable').offsetHeight плюс, пользуйся DOM методами для нахождения элемента — document.getElementById 2 — опять же, пользуйся стандартными методами DOM window.addHandler('load', function () {…}) или даже этой функцией — как наиболее кроссбраузерной Code:
function addHandler(object, event, handler) { if (typeof object.addEventListener != 'undefined') object.addEventListener(event, handler, false); else if (typeof object.attachEvent != 'undefined') object.attachEvent('on' + event, handler); else { var handlersProp = '_handlerStack_' + event; var eventProp = 'on' + event; if (typeof object[handlersProp] == 'undefined') { object[handlersProp] = []; if (typeof object[eventProp] != 'undefined') object[handlersProp].push(object[eventProp]); object[eventProp] = function(e) { var ret = true; for (var i = 0; ret != false && i < object[handlersProp].length; i++) ret = object[handlersProp][i](e); return ret; } } object[handlersProp].push(handler); } } addHandler (window, 'load', function() {…}) // передавать именно event, без 'on'
2.2 — не в курсе.
|
Pxx
|
Новичок
|
|
|
Зарегистр: 06/12/2005
|
Сообщений: 9
|
Из: Ukraine, Kiev
|
|
Re: Проблеммс с JavaScript
07/12/2005 15:37
[Re: Kildor]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
С хандлерами разобрался, а далее еще куча вопросов: 1. Что значит "в html strict таблица не имеет высоты"? 2. document.geElementById('maintable').offsetHeight выдает реальную высоту таблицы, а как теперь самому задать ее высоту?
А если в целом, то идея создать сплеш размерами, например 500х350, который бы вне зависимости от разрешения и размеров окна(если, конечно оно может его вместить) располагался ровно по центру. С горизонталью проблемм нет, а с вертикалью я уже замаялся. Поместил сплеш по центру в одноклеточную таблицу, которую хотел растягивать во всю клиентскую область. TABLE height="100%" не работает. Далее повесил обработчики на onLoad, onResize. Собирался получать размер клиентской области и устанавливать размеры таблицы под них. Но возникли вышеописанные проблеммы.
Может это как-то по-другому делается? Хелп.
|
Kildor
|
Operaman
|
|
|
Зарегистр: 10/03/2004
|
Сообщений: 557
|
Из: Россия, Новосибирск
|
|
Re: Проблеммс с JavaScript
07/12/2005 16:19
[Re: Pxx]
[post link]
|
Напомнить
Правка
|
Сообщить
Ответ
|
|
|
а обязательно использовать таблицу на сплеш? почему бы не обойтись дивами? PS: <div style='background:#aaf;text-align:center; vertical-align:middle; display:table; outline:1px solid invert; position:absolute; height: 350px; top:50%; margin-top:-175px; width:500px; left:50%; margin-left:-250px; '>Сплеш</div>
В ответ на: Что значит "в html strict таблица не имеет высоты"?
Прочитай спецификации.
|
|
0 зарег. и 74 анонимные пользователи просматривают этот форум.
Модератор: netman, van_grieg, alter, Angolier, Pechkin
Распечатать тему
|
Разрешения
Вы не можете создавать новые темы
Вы не можете отвечать в темах
HTML запрещен
UBBCode разрешен
|
Рейтинг:
Тема просмотрена: 7086
|
|
Быстрый поиск
|
|
|
© 2000-2002. Николай Ковальчук - All rights reserved
|
|