listen to 'CTRL+N' with javascript
listen to 'CTRL+N' with javascript
我正在尝试绑定'CTRL+N'组合键,如下所示:
var ctrlPressed = false;
var nCode = 78;
var ctrlCode = 224;
var cmdCode = 17;
document.addEventListener ("keydown", function(e){
if( e.keyCode == ctrlCode || e.keyCode == cmdCode){
ctrlPressed = true;
}else{
ctrlPressed = false;
}
console.log(e.keyCode);
});
document.addEventListener ("keyup", function(e){
if(ctrlPressed && e.keyCode == nCode){
e.preventDefault();
nou_element(parent);
return;
}
});
请注意:jQuery不可用
问题是e.preventDefault()似乎并没有覆盖bowser 中内置的创建窗口功能
我如何绕过?
您的代码有一些问题:
-
并非所有浏览器都允许您阻止默认的键盘操作(如Chromium 30)
-
为了防止它们出现在其他事件(如Firefox或IE8)上,您必须阻止
keydown
事件而不是keyup
事件,因为那样就太晚了。 -
要检查是否按下Ctrl键,请使用
e.ctrlKey
演示(适用于Firefox)
document.addEventListener("keydown", function(e){
if(e.ctrlKey && e.keyCode == /*key code*/) {
e.preventDefault();
/* Do whatever */
}
});
演示(适用于Firefox和IE8)
document.onkeydown = function(e){
e = e || window.event;
if(e.ctrlKey && e.keyCode == nCode) {
e.preventDefault ? e.preventDefault() : e.returnValue = false;
/* Do whatever */
return false;
}
};
相关文章:
- Modify Javascript with C#
- JavaScript with PHP SESSION
- Javascript with IE 11 issue
- javascript with()函数获胜'我不适合歌剧、Chrome或Brave
- Javascript with Heroku
- sqlite with javascript with phonegap using build.phonegap.co
- Including html+javascript with javascript
- .post javascript with PHP 以启用 select 语句返回
- Scrape query JavaScript with scrapy
- 正则表达式 JavaScript with punct,space 和 alnum
- writing JavaScript with PHP
- 将字符串从 C# 传递到 Javascript with Phonegap 和 Windows Phone 8
- Javascript with SJCL lib,在 GCM 模式下解密 AES
- Javascript with jquery datepicker using knockout
- Java to JavaScript with NodeJS convertion
- onMouseOver JavaScript with CSS list-style-image
- Appending on javascript with onclick
- javascript with html for stickynotes
- Scraping javascript with R
- Inserting javascript with jQuery .html