2014-07-15 69 views
3

我知道很多人會對此問題感到憤怒,但...任何方式來防止/禁用瀏覽器中的CTRL + [鍵]快捷鍵?

我有一個使用WebGL和指針鎖定API的遊戲。由於許多遊戲在CTRL上有「蹲伏」的性質,我想知道是否有任何可能的方法來停止像CTRL + S和CTRL + W這樣的瀏覽器快捷方式...

目前我有嚴厲地禁止控件在其中有任何CTRL鍵。我爲C設置了'蹲',這也很常見,但我也有關於製作MMORPG風格遊戲的想法,在這種遊戲中,您將擁有多個操作欄,並且由於CTRL不可行,因此無法進行多種組合。

+0

傾聽'keydown's;如果鍵匹配,則調用'event.preventDefault()'並調用適當的動作。或者,您可以查看[mousetrap](http://craig.is/killing/mice),它可以說是JavaScript最好的關鍵捕獲庫。 – royhowie

回答

17

注意:在鍍鉻Ctrl鍵 + W¯¯是 「保留」,使用window.onbeforeunload

嘗試此(禁用Ctrl鍵 + W¯¯Ctrl鍵 + 小號) :

window.onbeforeunload = function() {//Prevent Ctrl+W 
    return "Really want to quit the game?"; 
}; 

document.onkeydown = function (e) { 
    e = e || window.event;//Get event 
    if (e.ctrlKey) { 
     var c = e.which || e.keyCode;//Get key code 
     switch (c) { 
      case 83://Block Ctrl+S 
      case 87://Block Ctrl+W --Not work in Chrome 
       e.preventDefault();  
       e.stopPropagation(); 
      break; 
     } 
    } 
}; 
+0

嗨,我不知道標記這個正確的,因爲我發現其他地方說,你不能阻止CTRL + W和其他一些。這適用於CTRL + S而不是CTRL + W – user2000236