offsetHeight在OnLoad中获取为0的现象


Posted in Javascript onJuly 22, 2013

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

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

比如下面片段

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<script language='javascript'> 
window.attachEvent( "onload", function(){ _resizeScroll2();} ); 
window.onresize=function(){winresize();}; 
function _resizeScroll2(){ 
var html1 = '<div id="divcj" style="margin-top:15px;font-size:10px;width:400px;">' 
+ '<div style="float:left;width:50px;">测试</div>' 
+ '<div style="float:left;width:320px;">danielinbiti</div>' 
+ '</div>' 
+ '<div id="divcj2" style="margin-top:15px;font-size:10px;width:400px;">' 
+ '<div style="width:320px;">danielinbiti</div>' 
+ '</div>' 
document.getElementById('outer').innerHTML=html1; 
document.getElementById('divcj2').style.display='none'; 
alert(document.getElementById('divcj2').offsetHeight); 
} 
</script> 
</head> 
<body> 
<div id='outer'></div> 
</body> 
</html>

如果获取divcj的高度,那么在onload中获取到的是0。因为divcj下有float方式布局的。
这时如果div简单,可以借助隐藏层,比如这里的divcj2,把float去掉后,获取到的高度和divcj一样高。
Javascript 相关文章推荐
JavaScript 原型继承
Dec 26 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
Apr 12 Javascript
自己动手写的javascript前端等待控件
Oct 30 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
原生JS实现旋转木马式图片轮播插件
Apr 25 Javascript
使用Script元素发送JSONP请求的方法
Jun 12 Javascript
基于JavaScript实现轮播图代码
Jul 14 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
使用ionic播放轮询广告的实现方法(必看)
Apr 24 Javascript
PHP 实现一种多文件上传的方法
Sep 20 Javascript
使用webpack编译es6代码的方法步骤
Apr 28 Javascript
vue使用vuex实现首页导航切换不同路由的方法
May 08 Javascript
用jQuery获取IE9下拉框默认值问题探讨
Jul 22 #Javascript
JS 实现图片直接下载示例代码
Jul 22 #Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 #Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
Jul 22 #Javascript
JS判定是否原生方法
Jul 22 #Javascript
js图片延迟加载的实现方法及思路
Jul 22 #Javascript
js添加table的行和列 具体实现方法
Jul 22 #Javascript
You might like
php简单的上传类分享
2016/05/15 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
jQuery前台数据获取实现代码
2011/03/16 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
python 判断自定义对象类型
2009/03/21 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
个人简历中的自我评价范例
2013/10/29 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
党员倡议书
2015/01/19 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
高一作文之暖冬
2019/11/09 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL