Javascript 为什么';";多斯克罗尔;在IE8工作?

Javascript 为什么';";多斯克罗尔;在IE8工作?,javascript,internet-explorer-8,dhtml,Javascript,Internet Explorer 8,Dhtml,微软在IE8中仍然支持“Doscorl”吗?我根本无法让它工作 这是一个测试页面: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <body> <div id="a" style="overflow:auto; width:300px; height:300px; bord

微软在IE8中仍然支持“Doscorl”吗?我根本无法让它工作

这是一个测试页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
  <body>
    <div id="a" style="overflow:auto; width:300px; height:300px; border:1px solid black;">
      <div style="width:200px; height:500px; background:blue;">
      </div>
    </div>
    <button onclick="document.getElementById('a').doScroll('scrollbarDown')">Down</button>
    <button onclick="document.getElementById('a').doScroll('scrollbarUp')">Up</button>
  </body>
</html>

向下
向上的
“向下”和“向上”按钮在IE6和IE7以及“兼容性视图”中的IE8中工作正常。但它们在IE8标准视图中没有效果。(DOCTYPE是必需的。)


有什么想法吗?

我不知道doScroll()方法是否还存在,但是您应该可以安全地跨浏览器获取clientHeight和scrollHeight值。我将您的js放入了几个函数中,以使其更易于使用

<script type="text/javascript">
    function scrollDown(){
        var myDiv = document.getElementById('a');
        myDiv.scrollTop = myDiv.scrollHeight - myDiv.clientHeight;
    }
    function scrollUp(){
        var myDiv = document.getElementById('a');
        myDiv.scrollTop =  myDiv.clientHeight - myDiv.scrollHeight;
    }
</script>
<div id="a" style="overflow:auto; width:300px; height:300px; border:1px solid black;">
  <div style="width:200px; height:500px; background:blue;">
  </div>
</div>
<button onclick="scrollDown()">Down</button>
<button onclick="scrollUp()">Up</button>

函数scrollDown(){
var myDiv=document.getElementById('a');
myDiv.scrollTop=myDiv.scrollHeight-myDiv.clientHeight;
}
函数scrollUp(){
var myDiv=document.getElementById('a');
myDiv.scrollTop=myDiv.clientHeight-myDiv.scrollHeight;
}
向下
向上的

它应该在IE8中工作,请参阅

但那一页上有一些评论:

当元素的内容更改时 并使滚动条显示, doScroll方法可能无法在测试后立即正常工作 内容更新。当这种情况发生时,你 可以使用setTimeout方法 使浏览器能够识别 影响滚动的动态更改

由我来强调