Javascript
Народ, подскажите, как с помощью JS узнать высоту таблицы, если высота не задана в атрибутах <table> ни я в явном виде, ни style. Вообще, возможно ли ето?
Не возможно.
Как вариант, попробуй в этой таблице растянуть какую-нибудь картинку на 100% по высоте и измерить её длину. Да и то - врядли. Будет те же 100%...
Не возможно.
Как вариант, попробуй в этой таблице растянуть какую-нибудь картинку на 100% по высоте и измерить её длину. Да и то - врядли. Будет те же 100%...
Еще как можно:
document.getElementById("mytable").offsetHeight;
на другом форуме подсказали. Проверил, работает отлично.
Еще как можно:
document.getElementById("mytable").offsetHeight;
на другом форуме подсказали. Проверил, работает отлично.
Поделись где нашёл, а то я ничего не нашел о getElementById("mytable").offsetHeight.
Поделись где нашёл, а то я ничего не нашел о getElementById("mytable").offsetHeight.
Просто на другом форуме спросил, написпали ответ только эту строчку. форум сайта http://www.webscript.ru
Просто на другом форуме спросил, написпали ответ только эту строчку. форум сайта http://www.webscript.ru
В общем-то в спецификации DOM нет такого свойства, как offsetHeight, так что это возможно из объектной модели IE и не факт, что корректно будет работать в других браузерах.
Столкнулся с тем, что offsetHeight в некоторых случаях выдаёт ноль, при этом не могу понять в каких именно. Если кто разбирался, скиньте описание.
В спецификации DOM его и не может быть- он в спецификации JavaScript 1.2 Корректно работает везде.
Столкнулся с тем, что offsetHeight в некоторых случаях выдаёт ноль,
Значит ты скорее всего подталкиваешь в таблицу данные динамически и в какой-то момент спрашиваешь высоту таблицы. Так вот, если 0 , значит в ней нет контента на тот момент, когда ты её спрашиваешь.
А вообще JavaScript- это интерпретатор, и когда на нём пишешь- надо об этом помнить. Если у тебя есть функция, которая в определенный момент должна получить id элемента и высчитать его высоту:
- убедись, что этот элемент уже создан
- убедись, что он набит нужным тебе контентом
- по возможности не замыкай вызов ф-ии на событийную модель, т.к. в каждом браузере она реализована несколько по-своему- посто поставь вызов ф-ии в тексте кода после нужного шага и ты в большинстве случаев будешь застрахован от ошибок с синхронизацией...
Только в твоем случае все может быть куда сложнее-дело в том, что(как выяснилось) innerHTML, которым часто производят фаршировку блочных элементов- браузер запихивает в отдельный процесс и выполняет в отдельном триде, так что если ты неверно построишь синхронизацию- ты просто не увидишь высоту в определенный момент.
http://developer.mozilla.org/en/docs/DOM:element.offsetHeight
Да, ты прав, это из DHTML от MS.
Но его понимают IE4.0+, FF1.0+, Netscape6.0+, Opera7.0+, Safari1.0+ поэтом его можно спокойно использовать.