在javascript中处理特殊键的事件
Handle special keys' events in javascript
我已经在我的 Web 应用程序中覆盖了 onkeyup 和 onkeydown 函数,我想使用键盘的暂停/中断键。
但似乎这是一个特殊的键,并且具有奇怪的行为。在 keydown 事件之后,它会立即触发 keyup,即使您使用 preventDefault() 和 stopPropagation() 方法也是如此。
以下脚本应清楚地演示行为。首先按住空格键。在您把手从空格键上移开之前,不会弹出任何警报。然后尝试使用暂停/中断键进行相同的操作,按下该键后应该会收到警报。
https://jsfiddle.net/at3L9o73/2/
window.onkeydown = keydown;
window.onkeyup = keyup;
function keydown(event)
{
if(event.keyCode == 19)
{
event.preventDefault();
event.stopPropagation();
console.log("break down");
}
else if(event.keyCode == 32)
{
event.preventDefault();
event.stopPropagation();
console.log("space down");
}
}
function keyup(event)
{
if(event.keyCode == 19)
{
event.preventDefault();
event.stopPropagation();
console.log("break up");
window.alert("break keyp????");
}
else if(event.keyCode == 32)
{
event.preventDefault();
event.stopPropagation();
console.log("space up");
window.alert("space keyp");
}
}
提前致谢
好像
是我的键盘!我使用戴尔和惠普键盘检查了脚本,没有任何意外行为。
经过进一步调查,我发现有报告称某些键盘(如我的键盘)会像我描述的那样处理暂停/中断和打印屏幕/sysrq 键。按下时同时发送键控和键控序列,释放时不发送任何内容。
本文描述了类似的行为:
键盘扫描码 - 特殊键盘
相关文章:
- 召回窗口加载事件 - javascript
- 动态创建OnClick事件Javascript
- 全局屏幕span onclick触发一个事件javascript
- 使用react js在跨域上执行事件javascript
- 在change事件javascript上动态添加行
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- 如何在多表单的输入框中使用输入事件javascript
- 无法查看特定信息.单击事件.Javascript
- 两个文本框事件Javascript
- 阻止鼠标滚轮滚动,但不阻止滚动条事件.JavaScript
- 从 onkeydown 事件 (Javascript) 获取当前用户输入
- “稍后提醒我”/“快速事件”JavaScript解决方案
- 更改我正在侦听的事件Javascript的对象的CSS
- setInterval 不允许同时单击事件 - javascript
- 对每种情况使用一个事件(JavaScript 开关)
- 仅创建第二次点击事件 Javascript
- 每 60 秒仅启动一次事件 (JavaScript)
- 如何连接来自不同文件的事件?Javascript/Backbone
- URL 更改事件 - JavaScript
- 无法在无头模式下使用 watir Webdriver 执行按钮元素的 onclick 事件 javascript