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

Override the browser shortcuts by my own custom shortcuts

本文关键字:快捷方式 覆盖 浏览器 自定义 我自己 自己的      更新时间:2024-04-26

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

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

我想禁用默认的浏览器快捷方式,以便优先使用我自己的自定义快捷方式。这有实现这些目标的方法吗?对于我的自定义快捷方式,我使用了jquery keyUp事件。我在网上搜索,有关于jquery keyUp事件的建议,使用preventDefault()。但为了访问我自己的自定义快捷方式,我使用的是keyUp事件。因此,告诉我在所有浏览器中通过C#、jquery或任何其他方式禁用默认浏览器快捷方式的建议。

这将允许您执行以下操作:

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
您应该单击文档进行聚焦,然后可以对其进行测试

您的过程是正确的。我想你可以使用ascii值来处理这样的事情,例如:我用这个来按回车键。

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