Всё про браузер Opera
.: Форум сайта - operaman.ru :.

Opera браузер >> Opera for Windows

Страниц в этой теме: 1
Pxx
Новичок

Зарегистр: 06/12/2005
Сообщений: 9
Из: Ukraine, Kiev
Проблеммс с JavaScript new 
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 new 
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 new 
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 таблица не имеет высоты"?

Прочитай спецификации.


Страниц в этой теме: 1  

Opera браузер >> Opera for Windows

Дополнительные сведения
0 зарег. и 74 анонимные пользователи просматривают этот форум.

Модератор:  netman, van_grieg, alter, Angolier, Pechkin 

Распечатать тему

Разрешения
      Вы не можете создавать новые темы
      Вы не можете отвечать в темах
      HTML запрещен
      UBBCode разрешен

Рейтинг:
Тема просмотрена: 7086

Оценить эту тему
Быстрый поиск
Перейти на



  
Отправить email администрации operaman.ru - Home

© 2000-2002. Николай Ковальчук - All rights reserved
Rambler's Top100