首页 新闻 会员 周边 捐助

在IE中js获取div的scrollHeight

0
悬赏园豆:60 [已解决问题] 解决于 2012-06-01 10:45

在js中设置div的overflow为scroll,那么在ie中无法获取到div的scrollHeight值,我用的是IE8,求教,谢谢!

 

View Code
<html>
    <head>
        <title></title>
        <script type="text/javascript">
            function getHeight(id){
                var obj = document.getElementById(id);
                obj.style.overflow = "scroll";
                alert(obj.scrollHeight);
                obj.style.overflow = "hidden";
                
            }
        </script>
        <style type="text/css">
            .divHidden{
                width:100px;
                height:100px;
                overflow:hidden;
            }
            .divScroll{
                width:100px;
                height:100px;
                overflow:scroll;
            }
        </style>
    </head>
    <body>
        <div id="dh" class="divHidden">
            第一行
            dfsadfadf
            asdf
            sdf
            dsfsdfsadfadf
            asdf
            sdf
            dsfsd
            hasdgjoijgdsgdfsadfadf
            asdf
            sdf
            dsfsdfsadfadf
            asdf
            sdf
            dsfsd
            hasdgjoijgdsg
            最后一行
        </div>
        <input type="button" value="getHiddenHeight" onclick="getHeight('dh')" />
        
        </br>
        
        <div id="ds" class="divScroll">
            第一行
            dfsadfadf
            asdf
            sdffsadfadf
            asdf
            sdf
            dsfsd
            dsfsd
            hasdgjoijgdsgdfsadfadf
            asdf
            sdf
            dsfsdfsadfadf
            asdf
            sdf
            dsfsd
            hasdgjoijgdsg
            最后一行
        </div>
        <input type="button" value="getScrollHeight" onclick="alert(document.getElementById('ds').scrollHeight)" />
    </body>
</html>
问题补充:

用IE直接运行得到的是108,而如果启动调试单步执行的话得到是234,这个是什么情况呢??

鳳梨酥的主页 鳳梨酥 | 菜鸟二级 | 园豆:287
提问于:2012-05-04 11:11
< >
分享
最佳答案
0

我用你这个测试了,IE8有值209。

function getHeight(id) {
var obj = document.getElementById(id);
obj.style.overflow = "scroll";
alert(obj.scrollHeight);
//obj.style.overflow = "hidden";

}
window.onload = function () {
getHeight("dh");
}

收获园豆:60
icepy | 小虾三级 |园豆:587 | 2012-05-04 11:27

我获取到的是108,而不是208,其他浏览器都很正常,就IE不对

鳳梨酥 | 园豆:287 (菜鸟二级) | 2012-05-04 11:29

@闹闹爷: 

ie6是113 chrome是234,每个游览器对scroll的值是有差异的。

icepy | 园豆:587 (小虾三级) | 2012-05-04 11:32

@飞舞轻扬在台北: 但我用IE单步调试的话值是234,而运行的时候却是108,这个怎么解释呢?

鳳梨酥 | 园豆:287 (菜鸟二级) | 2012-05-04 11:33

@闹闹爷: 

给你看张图,scrollHeight是指网页全文本的高度,但是这个值,在不同游览器里是不一样的,就像它的高度,是以文本的高度的而定的,还有一点,是各游览器显示的差异性。如果你一定要深究,看下免得链接:http://msdn.microsoft.com/zh-cn/library/ie/system.windows.systemparameters.scrollheight

微软官方MSDN上对IE系列scrollheight的解释。

icepy | 园豆:587 (小虾三级) | 2012-05-04 11:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册