URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3391
[ Назад ]

Исходное сообщение
"Можно ли узнать высоту div, если её не задавать? "

Отправлено Andrey , 17-Июн-05 11:54 
Всем доброго времени суток.
Вообще, я программист, но с JavaScript опыта большого нет. Поэтому не судите слишком строго, если буду нести ярунду.

Вопрос такой. В php формируется текст страницы, который содержит в себе элемент типа <div id="div1">blablabla</div>.
Нужно в Javascript узнать высоту элемента(или нижнюю границу)? document.getElementById( "div1" ).style.height выдаёт пусто. Определить размер дива в пхп нельзя. Контент заранее неизвестен.

Возникает опасение, что этого сделать нельзя, но я рассуждаю примерно так: браузер, при рендеринге страницы определяет размер дива, значит, она известна браузеру, но вот как к ней добраться?

Будут ли предложения?


Содержание

Сообщения в этом обсуждении
"Можно ли узнать высоту div, если её не задавать? "
Отправлено Mephius , 17-Июн-05 12:17 
>Всем доброго времени суток.
>Вообще, я программист, но с JavaScript опыта большого нет. Поэтому не судите
>слишком строго, если буду нести ярунду.
>
>Вопрос такой. В php формируется текст страницы, который содержит в себе элемент типа <div id="div1">blablabla</div>.
>Нужно в Javascript узнать высоту элемента(или нижнюю границу)? document.getElementById( "div1" ).style.height выдаёт
>пусто. Определить размер дива в пхп нельзя. Контент заранее неизвестен.
>
>Возникает опасение, что этого сделать нельзя, но я рассуждаю примерно так: браузер,
>при рендеринге страницы определяет размер дива, значит, она известна браузеру, но
>вот как к ней добраться?
>
>Будут ли предложения?


могу предложить воспользоваться вот такой простенькой JavaScript функцией:

<script>
function viewObject(name)
{
    var obj = eval(name), i;

    if(!obj)
    {
        alert("\""+name+"\" ia not an object");
        return;
    }

    var w_Test = open("","Test","width=600,height=500,scrollbars=1");

    if(!w_Test)
    {
        alert("Cannot open window for "+name);
        return;
    }

    w_Test.document.open();

    for(i in obj)
    w_Test.document.write(name+"."+i+"="+obj[i]+"<br>");

    w_Test.document.close();
}
</script>

просто временно добавьте ее к выходному HTML и вызовите ПОСЛЕ того, как отрисуется ваш div:

<script>
viewObject(document.getElementById('div1'));
</script>

октроется попап с описанием свойств объекта. Функцию также можно натравливать на определенные массивы свойст объекта, например:

<script>
viewObject(document.getElementById('div1').style);
</script>

Очень удобно. Если смотреть в разных браузерах, то видно, чем отличается описание объекта в них.

Конретно по вашему примеру, насколько я помню, высоту вашего дива можно узнать вот таким образом:

<script>
alert(document.getElementById('div1').offsetHeight);
</script>

т.е. место, занимаемое объектом по высоте;


"Можно ли узнать высоту div, если её не задавать? "
Отправлено Andrey , 18-Июн-05 09:24 
Спасибо.
Нашёл таким образом свойство clientHeight. Вроде то, что нужно.

"Можно ли узнать высоту div, если её не задавать? "
Отправлено Lucky , 20-Июн-05 07:02 
>Спасибо.
>Нашёл таким образом свойство clientHeight. Вроде то, что нужно.


Это только вроде под ослика?


"Можно ли узнать высоту div, если её не задавать? "
Отправлено Andrey , 20-Июн-05 09:29 
>>Спасибо.
>>Нашёл таким образом свойство clientHeight. Вроде то, что нужно.
>
>
>Это только вроде под ослика?

В FF 1.0.4 работает. Это точно.
В IE тоже.