gpt4 book ai didi

javascript - 尝试抑制退格键和 F5 按钮也会抑制小写 "t"按钮

转载 作者:行者123 更新时间:2023-12-03 06:37:18 24 4
gpt4 key购买 nike

我试图阻止用户在输入一些文本时离开页面。我通过按住 F5 按钮和退格按钮(返回)来实现此操作。

现在我注意到我无法按 t。当我检查日志时,这是因为 t 给了我一个关键事件代码 116,它与 F5 按钮相同。

我该如何解决这个问题?

这是一个代码片段。

function suppressBackspaceAndF5(evt) {
evt = evt || window.event;
var target = evt.target || evt.srcElement;

// when I release "t" - the code is 116, which is the same as the refresh code.
console.log(evt.keyCode);

if ((evt.keyCode == 8 &&
!/input|textarea/i.test(target.nodeName)) ||
evt.keyCode == 116) {
return false;
}
}

document.onkeydown = suppressBackspaceAndF5;
document.onkeypress = suppressBackspaceAndF5;
<input></input>

最佳答案

我发现这个相关的 Stackoverflow 问题似乎包含您的答案。特意在此发帖作为引用:

capturing f5 keypress event in javascript using window.event.keyCode in window.onbeforeunload event is always 0 and not 116

摘录:SO 用户 Sim_ba

Dont use e.keyCode == 166 use e.code == 'F5' instead.

function fkey(e){
e = e || window.event;
if( wasPressed ) return;

function fkey(e){
e = e || window.event;
if (e.code === 'F5') {
alert("f5 pressed");
wasPressed = true;
}else {
alert("Window closed");
}
}

This is because the 't' and 'F5' both use the keycode number 116. [...]

也去给Sim_ba投票吧! :)

关于javascript - 尝试抑制退格键和 F5 按钮也会抑制小写 "t"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38136772/

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