Silverlight上的快捷方式,以及默认的浏览器快捷方式



我想在我的应用程序中处理快捷方式,所以我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事件以及浏览器事件都被执行。

最新更新