В общем такая ерунда: есть скрипт, который показывает модальное окошко. Скрипту можно явно указать размеры width и height или оставить 0 и 0, и тогда он рассчитывает размеры исходя из содержимого.
Вырезка:
function(c,w,h){
if(!w||!h){
var x=p.style.width, y=p.style.height;
(typeof c == 'object') ? b.appendChild(c) : b.innerHTML=c;
p.style.width=w?w+'px':''; p.style.height=h?h+'px':'';
b.style.display='';
w=parseInt(b.offsetWidth); h=parseInt(b.offsetHeight-12); // -12 для нормализации высоты
b.style.display='none'; p.style.width=x; p.style.height=y;
}else{
(typeof c == 'object') ? b.appendChild(c) : b.innerHTML=c;
}
Так вот… В ИЕ (даже ИЕ8), если запустить на локальной машине b.offsetWidth и b.offsetHeight рассчитываются правильно (например 300 и 190), а если запускать по сети — неправильно (660 и 210).
В объекте b есть просто DIV, внутри него DIV с «float: right» и DIV с «clear: right».
И вот если убрать этот DIV вообще из объекта b или убрать свойство «float: right», то тогда ИЕ считает b.offsetWidth нормально и локально и через сеть…
Объясните мне кто-нибудь — почему? Или хотя бы как ИЕ считает offsetWidth.