2009-11-18 9 views
1

"doScroll"은 Microsoft에서 IE8에서 계속 지원합니까? 나는 전혀 작동하지 않습니다.IE8에서 "doScroll"이 작동하지 않는 이유는 무엇입니까?

<!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 메소드를 사용하여 브라우저가 스크롤에 영향을 미치는 동적 변경을 인식 할 수있게합니다.

하이라이트.

관련 문제