gpt4 book ai didi

Javascript onkeyup 有时会被触发两次

转载 作者:行者123 更新时间:2023-12-02 18:25:58 29 4
gpt4 key购买 nike

出于某种原因,对于 IE9 上的某些人来说,我的 onkeyup 似乎被触发了两次。

我当前的函数如下所示:

document.getElementById("chatboxtextarea").onkeyup=function(e) {
e = e || window.event;
var msg = document.getElementById('chatboxtextarea').value;
if(e.keyCode != null) {
if (msg.replace(/\r/g, '\\\\r').replace(/\n/g, '') != "" && e.keyCode == 13) {
var textarea = document.getElementById('chatboxtextarea');
textarea.value = '';

var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
var tD = curr_hour + ":" + curr_min;


var url = 'http://domain.com/sub/' + kanal + '/' + encodeURIComponent(_aNM) + '/' + encodeURIComponent(_sid) + '/' + encodeURIComponent(_aID) + '/' + encodeURIComponent(_pMsg) + '/' + encodeURIComponent(msg.replace(/\r/g, '').replace(/\n/g, '')) + '/' + encodeURIComponent(_hits);
var data = {};
var callback = function (data) { };
J50Npi.getJSON(url, data, callback);
} else if (msg.replace(/\r/g, '\\\\r').replace(/\n/g, '') == '') {
var textarea = document.getElementById('chatboxtextarea');
textarea.value = '';
}
}
};

这是一个基本的聊天输入字段。问题是服务器从这些 IE9 用户那里收到两条消息(有时)。

我如何添加一个检查来查看人们是否在过去 1 秒内已经写过消息?就像垃圾邮件预防功能一样......我想这可以解决问题吗?

有什么想法吗?

最佳答案

人们是否有可能相当快地按两次回车键?

每当我必须执行异步操作时,我都会对输入进行反跳操作。

在您的 keycode == 13 检查之后,首先检查文本是否已被禁用,如果被禁用,则忽略任何进一步的处理。其次,将文本区域设置为禁用。第三,J50Npi.getJSON()成功后删除禁用属性;

textarea.setAttribute("disabled","disabled");
textarea.removeAttribute("disabled");

http://jsfiddle.net/Tnwje/1/

关于Javascript onkeyup 有时会被触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18363092/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com