检测站点的其他用户何时正在键入
Detect when other user of site is typing
我有一个完全用PHP,MySQL和一些JavaScript制作的聊天脚本。
在聊天窗口(由 2 个框架组成)中,第一个显示用户消息,第二个是文本输入区域。
框架与功能target
连接。
echo "< frame name='"chatviewpage'" src='"$chatviewurl'" scrolling='"no'">";
echo "< frame name='"chattextpage'" target='"chatviewpage'" src='"$chattexturl'" scrolling='"no'">";
因此,当用户发送消息时,它会自动显示在chatview
帧中。在chattextpage
中,我已经使用了onkeypress
功能,因此如果用户点击"输入",则会发送消息。
现在,我想添加让用户知道他的好友何时输入消息的功能。我在上一个问题上找到了我需要的脚本,但我不知道如何集成它。
脚本如下:
<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 at the moment.";
}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 at the moment.</div>
我希望它得到了很好的解释,有人可以帮忙吗?
按下某个键时:
-
检查是否有现有的计时器
-
如果有,请停止它启动计时器。
当计时器过期时,调用服务器方法。
var searchTimeout;
document.getElementById('searchBox').onkeypress = function () {
if (searchTimeout != undefined) clearTimeout(searchTimeout);
searchTimeout = setTimeout(callServerScript, 250);
};
function callServerScript() {
// your code here
}
基本上,
这样做是根据该人是向下还是向上键,将变量设置为 true 或 false:
//setup before functions
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
$('textarea').on('change',function(){
delay(function(){
//make your server call here
},2000);
});
相关文章:
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- jQuery:如何检测用户何时再次滚动到顶部
- 询问用户何时尝试关闭浏览器选项卡
- 一个html/javascript'小工具'知道用户何时单击了小部件外的任意位置
- 如何检测用户何时在主动滚动
- 跟踪用户何时接收到视频的第一个字节
- 如何检测用户何时在Google Places字段中输入无效位置
- jquery检测用户何时滚动到列表顶部
- 如何检测用户何时在输入字段中按Enter键
- 您如何判断用户何时从默认的 JavaScript 提示符 () 中单击取消
- 检测用户何时滚动到对象
- JQuery - 检查窗口何时位于顶部(用户不能再向上滚动)
- Javascript 事件,用于了解用户何时更改表单上的某些内容
- 检测用户何时从下拉列表中选择选项
- 安卓原生浏览器检测通过用户代理正则表达式
- 是否有可能/建议解析我的用户输入字符串 w 正则表达式
- 检测站点的其他用户何时正在键入
- 用于检测用户何时保存网页的 Javascript
- 如何知道用户何时关闭了 Web 应用程序
- 我如何知道用户何时清除我的应用程序的缓存