求助:聊天室在火狐里不能发送消息,在线等~~~~~~~~

camperJAVA 2009-04-02 02:23:13
RT~
聊天系统在火狐里能够进行用户登陆,但是在聊天窗口中不能发送消息,用鼠标点也不行,现上传一些相关代码

聊天窗口:
<!-- 下面是输入聊天信息所使用的文本,并为onKeyPress事件指定了监听函数 -->
<input name="chatMsg" type="text" size="90"
onKeyPress="javascript:enterHandler(event);">
<!-- 下面是输入聊天信息的文本框,并为onclick事件指定了监听函数 -->
<input type="button" name="button" value="提交"
onclick="javascript:sendRequest();">


//创建XMLHttpRequest对象
function createXMLHttpRequest()
{
if(window.ActiveXObject){
try{
XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e1){
XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
}
}
else if(window.XMLHttpRequest){

XMLHttpReq=new XMLHttpRequest();
}
}
function sendRequest()
{
var chatMsg = input.value;
current=new Date().getSeconds();
var t=Math.abs(current-last);
if(t <2){
alert("请不要刷屏,谢谢!");

return;
}
else{
last=current;
}
if(chatMsg.length>30){
alert("不允许发言的字数超过30个字节!");
return;
}
//完成XMLHttpRequest对象的初始化
createXMLHttpRequest();
//定义请求的URL变量
var url = "Chat";

//通过open方法取得与服务器的连接

//本系统发送POST请求

XMLHttpReq.open("POST", url, true);

//发送POST请求时应该增加该文件头

XMLHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

//指定XMLHttpRequest状态改变时的处理函数

XMLHttpReq.onreadystatechange = processResponse;

//发送请求后,将聊天信息的输入文本框清空

input.value="";

//发送请求,send的参数包含许多的key-value对

//即以“请求参数名=请求参数值”的形式发送请求参数
var mode=document.getElementById("mode").value;
XMLHttpReq.send("chatMsg=" + chatMsg+"&mode="+mode); // 发送请求

}

//定义定时发送的请求
function sendEmptyRequest()
{
//创建XMLHttpRequest对象
createXMLHttpRequest();
//定义服务器响应的URL
var url = "Chat";
//建立与服务器的连接
XMLHttpReq.open("POST", url, true);
//设置发送请求的参数格式
XMLHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//指定响应处理函数
XMLHttpReq.onreadystatechange = processResponse;
//发送请求
XMLHttpReq.send(null);
setTimeout("sendEmptyRequest()", 800);
}


//键盘处理函数

function enterHandler(event)

{

//定义键盘中发出事件的键

var keyCode=event.keyCode?event.keyCode:event.which?event.which:

event.charCode;

//回车键的代码为13,如果按下了回车键

if (keyCode == 13)

{

sendRequest();

}

}


其他浏览器,发送消息都可以,哪位高手帮忙看看吧,谢谢了!在线等~~~

...全文
127 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
camperJAVA 2009-04-03
  • 打赏
  • 举报
回复
啊~~~疯了,id没写

原因找到了~~
Siramizu 2009-04-03
  • 打赏
  • 举报
回复
看你的html都没有定义id,你怎么getElementById
聊天窗口:
<!-- 下面是输入聊天信息所使用的文本,并为onKeyPress事件指定了监听函数 -->
<input name="chatMsg" type="text" size="90"
onKeyPress="javascript:enterHandler(event);">


<input name="chatMsg" id="chatMsg" type="text" size="90"
onKeyPress="javascript:enterHandler(event);">
camperJAVA 2009-04-03
  • 打赏
  • 举报
回复
//将输入文本框定义成input变量
var input = document.getElementById("chatMsg");
//将焦点定位在聊天输入框内
input.focus();
//系统使用的XMLHttpRequest对象
var XMLHttpReq;
var last=new Date().getSeconds();
var current;
--------------------------------------------------------------------

忘记发前面的定义了~~
input在最前面有了,还有HTML相应修改指的是啥?


Siramizu多谢啊,我是新手,劳烦您费心了~

Siramizu 2009-04-03
  • 打赏
  • 举报
回复
你 function sendRequest里面的

var chatMsg = input.value;

这个input.value哪来的?

firefox下最好用document.getElementById取得,html也要相应修改
camperJAVA 2009-04-03
  • 打赏
  • 举报
回复
3楼的改的程序,咋都不行~~汗

camperJAVA 2009-04-02
  • 打赏
  • 举报
回复
那啥,你后面这段是添加进去的吗?
还是怎么?
Siramizu 2009-04-02
  • 打赏
  • 举报
回复
  <input name="chatMsg" id="chatMsg" type="text" size="90"
onKeyPress="javascript:enterHandler(event);">

<script type="text/javascript">
var chatMsg = document.getElementById("chatMsg").value;
</script>


firefox的话装个firebug,以后调试也方便
camperJAVA 2009-04-02
  • 打赏
  • 举报
回复
额~~不行~~
jack420124 2009-04-02
  • 打赏
  • 举报
回复
XMLHttpReq.onreadystatechange = processResponse
应该要加
XMLHttpReq.onreadystatechange = function()
{
if (XMLHttpReq.readyState == 4 && XMLHttpReq.status == 200)
processResponse();
} ;

52,782

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧