2013-03-04 74 views
2

根據questions我發現如何防止我們的組合鍵。如何更換瀏覽器快捷鍵默認

,但我想定義一個快捷鍵...

一個方法是使用bind()功能jQuery的,問題是,鍵的默認工作仍在工作。 i.e: Ctrl+s = savepage

任何解決方案?

+0

到目前爲止您還在研究什麼?你使用哪個瀏覽器? – 2013-03-04 15:35:05

+1

需要一種方式適用於所有主流瀏覽器,如果有... – Pooya 2013-03-04 15:36:40

+0

老實說,我更喜歡我的瀏覽器的鍵盤快捷方式干擾一些網站的人比相反;-) – 2013-03-04 15:44:12

回答

1

您鏈接的問題並不完全是您在尋找的內容,但可以使用相同的概念。下面是jQuery的只相當於監聽Ctrl + S鍵

$(document).on("keydown",function(e){ 
    if (e.originalEvent.ctrlKey && e.which == 83/*"s"*/) { 
     setTimeout(function(){ //Fix for firefox. Ref: http://stackoverflow.com/questions/14860759/cant-override-ctrls-in-firefox-using-jquery-hotkeys 
      // do save stuff... 
      alert("Saved!"); // if you remove alert, you can remove setTimeout 
     },0); 
     return false; 
    } 
}); 

http://jsfiddle.net/SEQVD/3/

在Chrome,火狐和IE測試。

+0

這是我想要的...是否有任何提示使用'e.originalEvent.ctrlKey'而不是ctrl + s – Pooya 2013-03-06 14:04:50

0

請確保您綁定到快捷方式的事件包含preventDefault。 jQuery中這應該是這樣的:

function event(e) { 
    e.preventDefault(); 
} 

使用其他框架,這可能是像e.stop()e.stopEvent()不同。