2010-12-15 74 views
22

我试图覆盖浏览器保存的快捷方式即(cntrl + s)给我保存在我的web应用程序的功能,我使用的是谷歌浏览器...我试过keydown listner来观察键码,但是当两个键(即cntrl + s)被同时按下时,s的键码永远不会返回到事件对象中。在浏览器中覆盖控件+ s(保存功能)

由于提前

特里克斯

回答

31

您收到两个事件的keydown:第一是控制键,第二个是与修改标志的字母开启。这里是你如何监听与修正按下一个键:

document.addEventListener("keydown", function(e) { 
    if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) { 
    e.preventDefault(); 
    // Process event... 
    } 
}, false); 

以从谷歌文档的页面时,它在其他平台上使用Cmd的-S在Mac和Ctrl-S。