我想在我的应用程序中处理快捷方式,因此我将事件处理程序命名为以下
Application.Current.RootVisual.AddHandler(UIElement.KeyDownEvent, new KeyEventHandler(HandleKeyDown), true);
问题在于使用Ctrl + S,Ctrl + T等快捷方式,这些快捷方式会触发浏览器快捷方式
我尝试使用javescript来保存Silverlight的aspx,如下所示
onkeydown = function(e) {
if (e.ctrlKey && e.keyCode == 's'.charCodeAt(0)) {
e.preventDefault();
}
};
任何想法如何禁用默认浏览器快捷方式,并使用我的
答案 0 :(得分:0)
好。试试这个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事件和浏览器事件都已执行。