捕捉“control"JavaScript中的按键按下事件
Capturing "control" keydown press event in JavaScript
我想弄清楚用户在使用JavaScript的HTML页面中何时按下控制键。
在以下代码中"CTRL UP"将按预期显示,但是"CTRL DOWN"只有当我同时按另一个键时才会出现,例如shift。
<html>
<head>
<script type="text/javascript">
window.addEventListener("keyup", function(event) {
// Bind to both command (for Mac) and control (for Win/Linux)
if (event.ctrlKey) {
console.log("CTRL UP");
}
}, false);
window.addEventListener("keydown", function(event) {
// Bind to both command (for Mac) and control (for Win/Linux)
if (event.ctrlKey) {
console.log("CTRL DOWN");
}
}, false);
</script>
</head>
<body>
Ctrl Demo
</body>
</html>
有没有办法得到"CTRL DOWN"当ctrl被按下时,键事件按预期工作?
注意:我试图让这个工作在谷歌Chrome扩展,所以使用Chrome特定的api或技巧,使这项工作是完全好的。我在Ubuntu上使用的是Google Chrome 15.0.874.83测试版
您的代码为我工作,就像下面的jQuery。(铬)
$(window).keydown(function(e){
if (e.ctrlKey)
console.log('Control Down');
});
使用alert有点尴尬,因为它阻塞了进程,当对话框打开时,您不会看到任何键状态的变化。我建议使用console.info/log/debug
如果你只是想检测Ctrl键被自己按下,下面将工作(尽管记住addEventListener
不支持在IE <9,你需要使用attachEvent
或onkeydown
代替):
window.addEventListener("keydown", function(event) {
// Bind to both command (for Mac) and control (for Win/Linux)
if (event.keyCode == 17) {
alert("Ctrl");
}
}, false);
相关文章:
- 召回窗口加载事件 - 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