要製做一個在線聊天的程序,在作最後的修飾時,須要對得到的信息即時滾動以保證用戶總能看到最新消息。javascript
聊天程序是基於AJAX設計的,沒有用框架,消息容器是一個DIV,因此問題就在於如何控制DIV的滾動條。html
但一樣的代碼拿到我這裏卻徹底失效,又仔細查了下資料說XHTML標準下scrollTop的值恆爲0,解決辦法是使用 document.documentElement.scrollTop代替document.body.scrollTop,講了半天所解決的是整個頁 面的滾動條。這個方法我是用不了了,由於不是框架結構,因此不可能用body的滾動條控制瀏覽信息。java
網上關於這個問題的資料不多,連CSDN上也說沒有辦法。框架
不死心,後來查DHTML手冊得知DIV有個doScroll方法能夠用來模擬滾動條點擊,但很使人失望,到了我這裏又是徹底失效,難道又不被XHTML支持?ui
最後終於被我找到控制DIV內容滾動的方法:spa
<!DOCTYPE> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="keywords" content="滾動條, scrollbar, 頁面底部, 聊天窗口, " /> <meta name="description" content="有些時候(如開發聊天程序),咱們須要將將滾動條(scrollbar)保持在最底部,好比聊天窗口,最新發出和收到的信息要顯示在最 下方,若是要看到最下方的內容,就必須保證滾動條保持在最底部。" /> <title>將滾動條(scrollbar)保持在最底部的方法 - 滾動條, scrollbar, 頁面底部, 聊天窗口, </title> </head> <body> <div id="example"> <h3 id="example_title">將滾動條(scrollbar)保持在最底部的方法</h3> <div id="example_main"> <script type="text/javascript"> function add() { var now = new Date(); var div = document.getElementById('scrolldIV'); div.innerHTML = div.innerHTML + 'time_' + now.getTime() + '<br />'; div.scrollTop = div.scrollHeight; } </script> <span class="notice">請點擊「插入一行」按鈕,插入最新信息,當出現滾動條時,滾動條將自動保持在底部。</span><br /> <div id="scrolldIV" style="overflow:auto; height: 100px; width: 400px; border: 1px solid #999;"> </div> <input type="button" value="插入一行" onclick="add();"> </div> </div> </body> </html>