【发布时间】:2012-02-16 08:10:39
【问题描述】:
我正在尝试在聊天中添加“用户正在输入”功能;用 PHP + MySQL/Ajax 编写的聊天。
它应该如何工作:
-当我的聊天伙伴 X 开始打字时,我在聊天框中看到:“X 正在打字”
-当我(名为 Y)正在打字时,他在他的聊天框中看到:“Y 正在打字”(就像 Yahoo Messenger 一样)。
到目前为止我尝试过的代码:
<script type="text/javascript" language="javascript">
var timer = 0;
function reduceTimer() {
timer = timer - 1;
isTyping(true);
}
function isTyping(val) {
if (val == 'true') {
document.getElementById('typing_on').innerHTML = "User is typing...";
} else {
if (timer <= 0) {
document.getElementById('typing_on').innerHTML = "No one is typing -blank space.";
} else {
setTimeout("reduceTimer();", 500);
}
}
}
</script>
<label>
<textarea onkeypress="isTyping('true'); timer=5;" onkeyup="isTyping('false')" name="textarea" id="textarea" cols="45" rows="5"></textarea>
</label>
<div id="typing_on">No one is typing -blank speace.</div>
问题:
-
如果我停下来思考一下我的拼写,看起来我已经停止打字了。是否有更相关且更简单的方法来设置此功能?是否有可能的代码:
- 文本框不为空(用户按下任意键开始输入)-> 消息:用户正在输入。
- 文本框为空 -> 消息:用户没有输入。
- 文本框不为空,但用户超过 5 秒没有按任何键 -> 消息:用户没有输入。
这表明我正在打字;我该如何实现它或在哪里实现它,以便在我的聊天框中看到“X 用户正在输入”而不是“我自己正在输入”。其他用户也一样,他应该收到一条关于我正在打字/不打字的消息,而不是关于他自己的消息。
谢谢。
【问题讨论】:
-
为你+1 ..你找到解决方案了吗?因为我也需要和你一样的东西?
-
有人把发送数据的ajax代码放在哪里