Silverlight和默认浏览器快捷方式的快捷方式

时间:2013-04-28 22:49:55

标签: javascript asp.net performance silverlight-4.0

我想在我的应用程序中处理快捷方式,因此我将事件处理程序命名为以下

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


    }
};

任何想法如何禁用默认浏览器快捷方式,并使用我的

1 个答案:

答案 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事件和浏览器事件都已执行。