商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
信箱 E杂志
您的位置:首页 > 学院 > 正文       
       十三、还原按钮与最小化按钮

最小化按钮:

function changemin() 

{

document.getElementById("eMsg").innerHTML=minstr; //变换系统区域内容

if(objTimerout) window.clearTimeout(objTimerout);//停止获得聊天记录函数

OnlineNum();//启动在线人数统计

}

还原按钮:

function changemax() 

{

document.getElementById("eMsg").innerHTML=maxstr; //变换系统区域内容

document.getElementById("nc").value=nc; //获得呢称

getChat(); //获得聊天记录

}

十四、服务器连结文件 conn.asp

<%

dim conn

dim connstr

dim db

db="main.mdb" '数据库文件位置

connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")

set conn=server.createobject("ADODB.CONNECTION")

conn.open connstr

 

Function del1(s)  'IE时处理函数

del1=left(s,len(s)-1)

end function

 

Function  StreamToStr(sStream)   'Firefox下编码转换

dim  dr  

Set  dr=Server.CreateObject("Adodb.Stream")  

dr.Mode=3  

dr.Type=2  

dr.Open  

dr.Charset="GB2312"

dr.Position=0

dr.WriteText sStream

dr.Position=0  

dr.Charset="UTF-8"  

StreamToStr=dr.ReadText

StreamToStr= left(StreamToStr,len(StreamToStr)-1) 

dr.Close  

Set dr=Nothing  

End Function

%>

十五、Firefox兼容处理

     程序第一次测试时并不能在Firefox中正常运行,因为懒羊很少用Firefox,所以一直未在其环境下测试,后来与小编聊天时才发现这个问题,于是对程序作了调整,对于修改部分程序中已经用红色标注出来,下面就针对标注的知识点作一个简单的介绍。

1、    IEdocument.getElementById("eMsg").style.top =document.documentElement.clientHeight - divHeight + parseInt(document.documentElement.scrollTop,10);

Firefoxdocument.getElementById("eMsg").style.top =(document.documentElement.clientHeight - divHeight + parseInt(document.documentElement.scrollTop,10))+"px";

IE中后面可以不加单位“px”而Firefox中却不可以,或许FirefoxIE智能吧,因此为了兼容干脆全部加上。

2、    CSS样式文件中在对.gn ul{margin:0;padding:0;list-style:none;}进行定义时,刚开始并没使用padding:0这条语句,然而在Firefox却转了行,原来Firefox只认识padding,因此我们在设置类似样式时,为了兼容起见可以将marginpadding全部设置为零。

3、    在信息发送采用快捷键时,原来的语句很简单,并没有如程序中作出判断:

if((event.keyCode==83)&&(event.altKey)){sendMessage();}

然而Firefox并不认可event.KeyCode,而必须采用event.which

var keycode = event.keyCode?event.keyCode:event.which?event.which:event.charCode;

keyCode用于返回的是功能键的编码
charCode
用于返回数字和字符键的编码
which
包含keyCodecharCode两种情况

4、    我们通过xmlDOM获得某一个节点具体值时,原来采用chatinfo[i].childNodes(0).text,然而在Firefox中对于.text并不支持,因此我们将代码改为

var nc=chatinfo[i].childNodes[0].firstChild.data;

还有一点值得注意,在表现数组时IE中可以用“( ),而在Firefox中必须采用“[ ]”。

5、    编码要求

这一点算是最让懒羊头疼的了,原来程序全部采用GB2312,我们知道xmlhttp默认是以utf-8,IE或许有一定的免役能力,能够识别,然而Firefox中却不可以,每次提交信息后添加到数据库时全部变成乱码,因此我们在后台不得不通过程序对传过来的参数进行编码转换,从UTF-8转为GB2312再存入数据库,具体的编码转换函数见conn.asp文件中的StreamToStr函数。然而有一点懒羊也不是很明白,为何在传递时非得加一个字符,因此就出现了前面的loadXML("get","quit.asp?frompage="+frompage+"a&b="+b+"&nc="+nc+"a",blankfunction);

这样的语句,当然在如果是在IE服务器端同样也要通过del1对字符串进行处理去掉传递过来的那个字符。这里懒羊采用的方法比较笨,如果大家有好的方法不妨试一试。

 

     至此,所有的开发过程也就讲完了,你只需将客户端代码合成文件lanyangpl.js,然后目标网页通过以下语句调用即可使用:

<script src="interface.js"></script>

<script src="xml.js"></script>

<script src="lanyangpl.js"></script>

注意,请将代码段放置body内,特别是interface.js必须放进body内。

或许细心的朋友发现,此程序与新浪的woocall并不相同,woocall界面采用flash完成,当然有能力的朋友也可以通过flash去开发一个页面聊天系统,本教程中的所有代码可以正常运行,但离真正投入使用还有一段距离,希望大家在学习的过程在再加以完善,如果大家做出好的版本也请发给懒羊学习学习。

1 2 3 4 5 6 7 8 9 10 11 12
有问必答
【内容导航】
第1页:系统功能概述 第2页:界面的实现
第3页:界面效果及位置的实现 第4页:Ajax原理
第5页:数据库规划 第6页:系统登陆
第7页:在线访客统计 第8页:呢称修改功能
第9页:信息发送功能 第10页:信息接收功能
第11页:系统退出 第12页:还原按钮与最小化按钮
©版权所有。未经许可,不得转载。
[责任编辑:罗可龙] [我要挑错]
相关产品
本文相关产品
   没有相关产品