在js中设置div的overflow为scroll,那么在ie中无法获取到div的scrollHeight值,我用的是IE8,求教,谢谢!
<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,这个是什么情况呢??
我用你这个测试了,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");
}
我获取到的是108,而不是208,其他浏览器都很正常,就IE不对
@闹闹爷:
ie6是113 chrome是234,每个游览器对scroll的值是有差异的。
@飞舞轻扬在台北: 但我用IE单步调试的话值是234,而运行的时候却是108,这个怎么解释呢?
@闹闹爷:
给你看张图,scrollHeight是指网页全文本的高度,但是这个值,在不同游览器里是不一样的,就像它的高度,是以文本的高度的而定的,还有一点,是各游览器显示的差异性。如果你一定要深究,看下免得链接:http://msdn.microsoft.com/zh-cn/library/ie/system.windows.systemparameters.scrollheight
微软官方MSDN上对IE系列scrollheight的解释。