0

我想在我的应用程序中处理快捷方式,所以我 keydown 事件处理程序如下

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();


    }
};

知道如何禁用默认浏览器快捷方式,并使用我的

4

1 回答 1

0

好吧。试试这个 jquery 插件

https://github.com/jeresig/jquery.hotkeys

但先读这个

Firefox 是最自由的一种,它可以让您捕获所有快捷方式,甚至是浏览器中内置的那些快捷方式,例如 Ctrl-t 用于新选项卡,或 Ctrl-a 用于选择 >all text。您始终可以通过在处理程序中返回 true 将它们冒泡到浏览器。

其他人,(IE)要么让您处理内置的快捷方式,但会在您的代码执行后添加它们的功能。或者 (Opera/Safari) 根本不会将这些事件传递给 DOM。

因此,如果您绑定 Ctrl-Q 或 Alt-F4 并且您的 Safari/Opera 窗口已关闭,请不要感到惊讶。

它在 Chrome 上运行良好,但在 FF 中,JS 事件和浏览器事件都被执行。

于 2013-04-30T09:41:02.150 回答