用我自己的自定义快捷方式覆盖浏览器快捷方式
问题描述:
我使用C#创建了一个Asp.net MVC4 Web应用程序,我们可以动态地为所有页面创建键盘快捷方式。我们可以立即使用该键盘快捷方式转到特定页面。并且问题是每个浏览器都有自己的默认shortcuts.For例如用我自己的自定义快捷方式覆盖浏览器快捷方式
如果我创建了键盘快捷键CTRL +一个它应该重定向到我自己的自定义页面。但默认浏览器快捷方式CTRL + A改为从页面中选择全部。
我想禁用默认浏览器快捷方式优先我自己的自定义快捷方式。是否有任何方式来实现这些?对于我的自定义快捷方式,我使用jquery keyUp event.I在互联网上搜索,那里的建议是在jQuery的keyUp事件,使用preventDefault()。但为访问我自己的自定义快捷键,我使用keyUp事件。所以告诉我建议,以禁用默认所有浏览器中的浏览器快捷方式都可以通过C#,jquery或任何其他方式进行。
答
你应该在文档中点击对焦,然后你可以测试它。
这将让你这样做:
e.ctrlKey && String.fromCharCode(kc).toUpperCase()
检查按Ctrl +一个被按下。
$(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
我敢肯定,这是不可能的,至少它不会在所有浏览器中可靠地工作。您可以使用'keydown'来监听关键事件,并检查事件以查看CTRL是否被按下,但浏览器镶边将覆盖您在JS中创建的所有快捷键。 – 2015-02-24 09:59:01