通过我自己的自定义快捷方式覆盖浏览器快捷方式

时间:2015-02-24 09:51:48

标签: javascript jquery keyboard-shortcuts

我使用C#创建了一个Asp.net MVC4 Web应用程序,我们可以为所有页​​面动态创建键盘快捷键。我们可以立即使用该键盘快捷键转到特定页面。问题是每个浏览器都有自己的默认值快捷方式。例如

如果我创建键盘快捷键 CTRL + A ,它应该重定向到我自己的自定义页面。但默认的浏览器快捷方式 CTRL + A 会改为从页面中选择所有内容。

我想禁用默认的浏览器快捷方式,以优先考虑我自己的自定义快捷方式。这是实现这些目标的任何方式吗?对于我的自定义快捷方式,我使用了jquery keyUp event.I在互联网上搜索,有关于jquery keyUp事件的建议,请使用preventDefault()。但是为了访问我自己的自定义快捷方式,我使用keyUp event.So告诉我建议禁用默认所有浏览器中的浏览器快捷方式可以是C#,jquery或任何其他方式。

2 个答案:

答案 0 :(得分:8)

这可以让你这样做:

e.ctrlKey && String.fromCharCode(kc).toUpperCase()

检查要按下的 Ctrl + A

$(document).on('keydown', function(e) {
  var kc = e.which || e.keyCode;

  if (e.ctrlKey && String.fromCharCode(kc).toUpperCase() == "A") {
    e.preventDefault();
    console.log(String.fromCharCode(kc).toUpperCase());
    window.location.href = 'your url here';
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
adfasfasdfsda
您应该点击文档进行聚焦,然后进行测试

答案 1 :(得分:-1)

您的程序正确无误。我想你可以使用ascii值来操作这样的东西,例如:我用它来按回车键。

$('body').on('keypress', '#Selector-Id', function(e) {
if (e.which == 13) {
alert("Hi");
}
});