当控制键关闭时,我无法使用tab来处理keydown。我怎么能这样做。
$(document).keydown(function (e) {
if (e.ctrlKey && e.which === 9){
alert('tab pressed when controlkey is down');
}
});
答案 0 :(得分:0)
这是一个有效的解决方案。但如果我是你,我不会抓住CTRL + Tab。可以捕获大多数快捷键如CTRL + S,然后您可以调用event.preventDefault()来防止默认行为。例如,在许多浏览器中,这将停止对话框以保存网页不显示。但是使用CTRL + Tab,它会被捕获,但是在Firefox CTRL + Tab更改选项卡中,event.preventDefault()没有达到预期的效果。您可以使用下面的代码查看两者。 You can take it for a test drive。
<html><body>
<script>
function shortcutHandler(event) {
if ((event.charCode == 115) && (event.ctrlKey)) {
document.getElementById("debug").innerHTML += 'CTRL+S<br/>'
event.preventDefault()
}
if ((event.keyCode == 9) && (event.ctrlKey)) {
document.getElementById("debug").innerHTML += 'CTRL+Tab<br/>'
event.preventDefault()
}
}
document.addEventListener("keypress", shortcutHandler, true);
</script>
<div id=debug style="border: 1px solid red"></div>
</body></html>
这是一个jquery版本,test drive
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
$(window).keypress(function(event){
if ((event.charCode == 115) && (event.ctrlKey)) {
document.getElementById("debug").innerHTML += 'CTRL+S<br/>'
event.preventDefault()
}
if ((event.keyCode == 9) && (event.ctrlKey)) {
document.getElementById("debug").innerHTML += 'CTRL+Tab<br/>'
event.preventDefault()
}
});
</script>
</head>
<body>
Press CTRL+S or CTRL+Tab
<div id=debug style="border: 1px solid red"></div>
</body></html>