Получение ширины контента..
Дело в том что пытаюсь получить реальную ширину документа, точнее его правую границу. Попробовал такой код:
window.onresize=getContentWidth; function getContentWidth() { div_fv=document.createElement('div'); div_fv.style.position="absolute"; // document.body.appendChild(div_fv); while (document.body.childNodes.length>4) { var first_el=document.body.firstChild; if(first_el.id!="rig_zg"&&first_el.id!="rig_ban") // это мои элементы, которые не нужно считать div_fv.appendChild(first_el); } // doc_maxX_fv=div_fv.getBoundingClientRect().right;; // var insEl=document.getElementById("rig_zg"); while (div_fv.childNodes.length>0) { document.body.insertBefore(div_fv.firstChild,insEl); } document.body.removeChild(div_fv); return doc_maxX_fv; }; Работает только на фоксе - в IE и в опере getBoundingClientRect().right не изменяется при ресайзе окна (а должен, так как блочные элементы сжимаются друг-к-другу, если окошко сделать поменьше), но при запуске - стабильно. Правда ИЕ тормозит сильно.. 1. Что сделать, чтобы работало при ресайзе на ИЕ и опере? 2. Правильный ли это метод, если нет, то как получить? Оговорка - родительский тег div я в документе оставить не могу, иначе порушу некоторые чужие скрипты, поэтому сначала создаю, потом удаляю. |
Так, с ие и оперой разобрался - я использовал переменную doc_maxX_fv, в CSS expressions.
Остался один вопрос - это как-нибудь можно сделать поизящнее, или попроще? В IE например это тормозит немного.. |
ответ
document.getElementsByTagName("body")[0].clientWidth
|
ответ
если я правильно понял...
|
во.. я давно такой скрипт ищу.. то что надо)
|
Часовой пояс GMT +3, время: 05:26. |