|
|
|
| всем привет.
у меня такая проблема: нужно определить высоту объекта, я использую такой код:
var crossobj = document.getElementById ? document.getElementById("desc") : document.all.desc
var elemheight = crossobj.offsetHeight
|
во всех браузерах этот код работает кроме IE. подскажите, как правильно определять переменную в IE ? | |
|
|
|
|
|
|
|
для: prosaic
(15.05.2008 в 16:07)
| | document.getElementById работает во всех браузерах, его и нужно использовать
var crossobj = document.getElementById("desc");
var elemheight =crossobj.clientHeight ? crossobj.clientHeight : crossobj.offsetHeight
|
| |
|
|
|
|
|
|
|
для: Lelik
(15.05.2008 в 16:09)
| | да, в отдельно созданном файле работает. но в моём коде не проходит.
причём getElementById определяется как объект, но .clientHeight / .offsetHeight выводит как 0 | |
|
|
|
|
|
|
|
для: prosaic
(15.05.2008 в 16:31)
| | а к какому элементу применяется код? span? div? | |
|
|
|
|
|
|
|
для: Lelik
(15.05.2008 в 16:42)
| | div. задано позиционирование как абсолютное, высота динамическая.
код который определяет высоту расположен после кода тега. то есть когда идёт определение высоты, тег уже сформирован. | |
|
|
|
|
|
|
|
для: prosaic
(15.05.2008 в 16:55)
| | а если диву назначить стили:
<div style="min-height: 1px; //height:1px;"></div>
|
| |
|
|
|
|
|
|
|
для: Lelik
(15.05.2008 в 17:24)
| | не помогает. | |
|
|
|
|
|
|
|
для: prosaic
(15.05.2008 в 17:37)
| | тогда давай код сюда | |
|
|
|
|
|
|
|
для: Lelik
(15.05.2008 в 17:59)
| | довольно долго капался, но нашел причину. больше похоже на ошибку браузера. оказалось что на работу функций JS влияет вложенность тегов(!)
хахаха
я упростил код, убрав, то что не влияет на ошибку, получилось:
<html>
<body>
<table cellspacing='0' cellpadding='0'>
<tr><td>
<table cellspacing='0' cellpadding='0'>
<tr><td>
<div id='pdesc' style='position:relative;width:340px;height:387px;overflow:hidden;'>
<div id='rdesc' style='position:absolute;width:338px;left:0px;top:0px'>
<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a
</div></div>
</td></tr>
</table>
<script>
var crossobj = document.getElementById("rdesc");
var pdesc = document.getElementById("pdesc");
alert(document.all.rdesc.offsetHeight)
</script>
</td></tr>
</table>
</body>
</html>
|
этот код выводит нуль.
но если <script>...</script> поставить в конец, то все работает:
<html>
<body>
<table cellspacing='0' cellpadding='0'>
<tr><td>
<table cellspacing='0' cellpadding='0'>
<tr><td>
<div id='pdesc' style='position:relative;width:340px;height:387px;overflow:hidden;'>
<div id='rdesc' style='position:absolute;width:338px;left:0px;top:0px'>
<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a
</div></div>
</td></tr>
</table>
</td></tr>
</table>
<script>
var crossobj = document.getElementById("rdesc");
var pdesc = document.getElementById("pdesc");
alert(document.all.rdesc.offsetHeight)
</script>
</body>
</html>
|
вот такой бред. | |
|
|
|