日期:2014-05-16  浏览次数:20387 次

在IE中获取scrollHeight
代码如下:
第一个div的overflow原先是hidden 通过js修改为scroll后再获得scrollHeight得到的值是108
第二个div的overflow原先就是scroll,通过js获得scrollHeight得到的值是252
为什么会不一样呢??求教,谢谢!

HTML 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";
                
            }
            
            window.onload = function () {
                 getHeight("dh");
                 alert(document.getElementById('ds').scrollHeight)
            }
        </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>




 
 
 
 
----------------------------------签----------名----------栏----------------------------------努力备考中...

------解决方案--------------------
围观
这东西是自适应的吧

------解决方案--------------------
没有什么问题啊。。Ie9下2个都是240
------解决方案--------------------
是有些奇怪,延时输出是234,不是252
JScript code

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