2009-11-18 29 views
1

微軟在IE8中是否仍支持「doScroll」?我無法讓它工作。爲什麼「doScroll」不能在IE8中工作?

這是一個測試頁面:

<!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是必要的。)

任何想法?

回答

0

我不知道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> 
0

它應該在IE8中工作,請參閱MSDN documentation

但也有在該網頁上的一些言論:

當一個元素的內容改變 和原因滾動條顯示, 的doScroll方法可能無法正常工作立即 內容更新如下。當發生這種情況時,您可以使用setTimeout方法 使瀏覽器識別影響滾動的動態更改。

突出顯示我。