textarea的功能为空

时间:2012-02-06 02:42:22

标签: javascript chat

当textarea至少有一个字符时,有没有办法在聊天中实现“其他用户没有输入”,当他的textarea为空时“另一个用户正在输入”?

首先,如果用户按下按键,我想通过每2秒检查一次来实现这种“打字”功能,但我意识到这会使聊天过慢。当textarea不为空(用户正在键入)时以及当空 - 什么都不做时,它是一种简单的方法来提取信息。

谢谢。

1 个答案:

答案 0 :(得分:2)

首先发送“正在输入”消息keyup并使用window.setTimeout在10秒左右后发送“未输入”消息。取消并重新安排每个键盘上的setTimeout。

下面未经测试的例子:

var input = document.getElementById('typeeBox');
var isTyping = false;
var timeoutId = 0;

function stoppedTyping() {
    isTyping = false;
    // Send not typing message.
    // Update db status.
}

function startedTyping() {
    if (!isTyping) {
        // Send is typing message.
        // Update db status.
        isTyping = true;
        timeoutId = window.setTimeout(stoppedTyping, 10000);
    } else {
        window.clearTimeout(timeoutId);
        timeoutId = window.setTimeout(stoppedTyping, 10000);
    }
}

input.addEventListener('keyup', startedTyping, false);