我想在我的应用程序中处理快捷方式,所以我keydown事件处理程序如下
Application.Current.RootVisual.AddHandler(UIElement.KeyDownEvent, new KeyEventHandler(HandleKeyDown), true);
问题在于像Ctrl+S, Ctrl+T这样的快捷键,它们会触发浏览器的快捷键
我试图禁用它从aspx持有silverlight使用javascript如下
onkeydown = function(e) {
if (e.ctrlKey && e.keyCode == 's'.charCodeAt(0)) {
e.preventDefault();
}
};
是否知道如何禁用默认的浏览器快捷方式,并使用我的
好的。试试jquery插件
https://github.com/jeresig/jquery.hotkeys但是先读这个
Firefox是最自由的,它允许您捕获所有快捷键,甚至包括浏览器中内置的快捷键,例如Ctrl-t用于新建选项卡,或Ctrl-a用于选择所有文本。你总是可以通过在处理程序中返回true来将它们显示给浏览器。
其他的,(IE)要么让你处理内置的快捷方式,但会在你的代码执行后添加它们的功能。或者(Opera/Safari)根本不会将这些事件传递给DOM。
所以,如果你绑定了Ctrl-Q或Alt-F4,你的Safari/Opera窗口关闭了,不要惊讶。
它在Chrome上工作得很好,但在FF中JS事件以及浏览器事件都被执行。