當textarea至少有一個字符時,如果textarea爲空,並且「其他用戶正在鍵入」,是否有一種方式可以在聊天中「其他用戶不打字」?textarea函數爲空
首先,我想通過檢查每2秒檢查一次該用戶是否按下按鍵,但我意識到這會太慢地減慢聊天。當textarea不是空的時候(用戶正在輸入)以及什麼時候空 - 什麼也不做。
謝謝。
當textarea至少有一個字符時,如果textarea爲空,並且「其他用戶正在鍵入」,是否有一種方式可以在聊天中「其他用戶不打字」?textarea函數爲空
首先,我想通過檢查每2秒檢查一次該用戶是否按下按鍵,但我意識到這會太慢地減慢聊天。當textarea不是空的時候(用戶正在輸入)以及什麼時候空 - 什麼也不做。
謝謝。
發送第一個keyup
的「is typing」消息,並使用window.setTimeout
在10秒左右後發送「not typing」消息。在每個鍵盤上取消並重新安排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);
使用'keydown'處理程序。如果用戶使用字符填充文本框,則發送「正在輸入」消息,如果用戶清空文本框,則發送空消息(以清除消息輸出)。 – 2012-02-06 02:48:20
謝謝,我會嘗試看看我是否也可以爲此創建代碼。 – Ingrid 2012-02-06 03:32:49