要制做一个在线聊天的程序,在作最后的修饰时,须要对得到的信息即时滚动以保证用户总能看到最新消息。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>