电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

offsetHeight在OnLoad中获取为0的现象


发布日期:2022/11/17
 
需要获取div的高度时往往需要用到offsetHeight有时会碰到offsetHeight获取到为的现象感兴趣的朋友可以参考下面的代码片段

在使用IE中特别在目前div+css的方式往往不定义div的高度这是在添加div内容后需要获取div的高度时往往需要用到offsetHeight

在使用中有时会碰到offsetHeight获取到为的现象但如果你用各种JS调试工具调试又能在对象中看到值(如果直接指向offsetHeight是没值的但如果是对象查看是有值的在调试器中回车查看对象就已经刷新对象了所以有值

比如下面片段

复制代码 代码如下:
<!DOCTYPE html PUBLIC "//WC//DTD XHTML Transitional//EN" "
<html>
<head>
<script language=javascript>
windowattachEvent( "onload" function(){ _resizeScroll();} );
windowonresize=function(){winresize();};
function _resizeScroll(){
var html = <div id="divcj" style="margintop:px;fontsize:px;width:px;">
+ <div style="float:left;width:px;">测试</div>
+ <div style="float:left;width:px;">danielinbiti</div>
+ </div>
+ <div id="divcj" style="margintop:px;fontsize:px;width:px;">
+ <div style="width:px;">danielinbiti</div>
+ </div>
documentgetElementById(outer)innerHTML=html;
documentgetElementById(divcj)styledisplay=none;
alert(documentgetElementById(divcj)offsetHeight);
}
</script>
</head>
<body>
<div id=outer></div>
</body>
</html>


如果获取divcj的高度那么在onload中获取到的是因为divcj下有float方式布局的
这时如果div简单可以借助隐藏层比如这里的divcj把float去掉后获取到的高度和divcj一样高

上一篇:jcrop基本参数一览

下一篇:批量实现面向对象的实例代码