效果图:
跳转到QQ聊天页面(单聊)
跳转到QQ群页面
在跳转到QQ群页面前,需要先获取要跳转到QQ群的Key,获取Key的网址: https://qun.qq.com/join.html
1.创建index.asp页面<html>
<frameset rows="60,*">
<frame name="say" src="say.asp">
<frame name="message" src="message.asp">
</frameset><noframes></noframes>
</html>
2.创建say.asp页面
<html>
<body>
<form name="form1" method="post" action="">
昵称:<input type="text" name="txtName" size="10">
发言:<input type="text" name="txtSay" size="30">
<input type="submit" value=" 发送 ">
</form>
<%
'如果提交了表单,就将发言内容添加到Application对象中
If Trim(Request.Form("txtName"))<>"" And Trim(Request.Form("txtSay"))<>"" Then
'下面先获取发言人的IP地址
User_ip=Request.ServerVariables("Remote_Addr")
'下面获取本次发言字符串,包括发言人和发言内容
Dim strSay
strSay="来自于"&User_ip&"的" &Request.Form("txtName") &"在" &Now()&"说:" &Request.Form("txtSay") &"<br>"
'下面将本次发言添加到聊天内容中
Application.Lock '先锁定
Application("strChat")=strSay &Application("strChat")
Application.Unlock '解除锁定
End if
%>
</body>
</html>
3.创建message.asp页面
<html>
<head>
<title>显示发言页面</title>
<meta http-equiv="refresh" content="5">
</head>
<body>
<% Response.Write Application("strChat") '显示聊天内容 %>
</body>
</html>
要制作一个在线聊天的程序,在做最后的修饰时,需要对获得的信息即时滚动以保证用户总能看到最新消息。聊天程序是基于AJAX设计的,没有用框架,消息容器是一个DIV,所以问题就在于如何控制DIV的滚动条。
网上有资料介绍说通过设置scrollTop属性来控制滚动条位置,具体可参见:
http://hi.baidu.com/chen1345789/blog/item/de727bfb45587b176d22eba1.html
但同样的代码拿到我这里却完全失效,又仔细查了下资料说XHTML标准下scrollTop的值恒为0,解决办法是使用document.documentElement.scrollTop代替document.body.scrollTop,讲了半天所解决的是整个页面的滚动条。这个方法我是用不了了,因为不是框架结构,所以不可能用body的滚动条控制浏览信息。
网上关于这个问题的资料很少,连CSDN上也说没有办法。
不死心,后来查DHTML手册得知DIV有个doScroll方法可以用来模拟滚动条点击,但很令人失望,到了我这里又是完全失效,难道又不被XHTML支持?
最后终于被我找到三种控制DIV内容滚动的方法:
方法一:
使用锚标记要滚动到的位置,然后通过click方法模拟点击滚动到锚所在位置
<script language="javascript1.2" type="text/javascript">
function onGetMessage(context)
{
msg.innerHTML+=context
msg_end.click()
}
</script>
<div style="width:500pxoverflow:auto">
<div id="msg" style="overflow:hiddenwidth:480px"></div>
<div><a id="msg_end" name="1" href="#1">&nbsp</a></div>
</div>
方法二:
利用DIV的scrollIntoView方法,将最底端滚动到可视位置 [list=1]<script
language="javascript1.2"
type="text/javascript">
function onGetMessage(context)
{
msg.innerHTML+=context
msg_end.scrollIntoView()
}
</script>
<div style="width:500pxoverflow:auto">
<div id="msg" style="overflow:hiddenwidth:480px"></div>
<div id="msg_end" style="height:0pxoverflow:hidden"></div>
</div>
方法三:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/htmlcharset=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:autoheight: 100pxwidth: 400pxborder: 1px solid #999">
</div>
<input type="button" value="插入一行" onclick="add()">
<!--************************************* 实例代码结束 *************************************-->
</div>
</div>
</body>
</html>
方法4:
这个比较复杂也比较灵活一点,就是利用DIV+JS+图片构造一个滚动条,当然了图片是怎么好看怎么用了。
主要部分就是外层的DIV加个overflow:hidden属性,通过js代码调整内层DIV的margin-left和margin-top来控制内容的滚动,由于上面两种方法已经可以满足需求,所以这种方法没具体做深究,有兴趣的可以试一下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)