2013-03-22 157 views
0

我想覆蓋我們在瀏覽器中使用的默認快捷鍵(例如Ctrl + 1,Ctrl + 2分別轉到Tab1和Tab2)。 我必須使用javascript.please來幫助我。javascript:覆蓋瀏覽器的默認快捷鍵(Ctrl + anyKey)

我試過下面的代碼,當我使用alert()但沒有alert()函數時不能完美工作時,它工作正常。

代碼:

<script language="javascript" type="text/javascript"> 
document.onkeydown = NavigateThrough; 
function NavigateThrough (event) 
{ 
    if (!document.getElementById) return; 
    if (window.event) event = window.event; 
    if (event.ctrlKey) 
    { 
     var link = null; 
     switch (event.keyCode ? event.keyCode : event.which ? event.which : null) 
     { 
      case 0x31: 
       //alert("hi 1 pressed"); 
       document.getElementById('txt').value = "Number : 1"; 
       break; 
      case 0x32: 
       //alert("hi 2 pressed"); 
       document.getElementById('txt').value = "Number : 2" 
       break; 
      case 0x33: 
       //alert("hi 3 pressed"); 
       document.getElementById('txt').value = "Number : 3" 
       break; 
     } 
    } 
} 
</script> 
<body > 
<input type="text" id="txt"> 
</body> 
+4

由於很多人會告訴你,這不是一個好主意。您不希望覆蓋用戶期望得到的設置 – 2013-03-22 10:27:59

回答

1

嘗試添加event.preventDefault()? ,因爲Ctrl + 1將重新加載頁面並中斷代碼。

另外,ctrl鍵對於跨平臺瀏覽器來說不一定足夠。 考慮的jQuery或event.metaKey

jQuery key code for command key

+0

感謝您的回覆。我嘗試添加event.preventDefault(),但它不工作。它阻止了我的代碼運行。按Ctrl + 1後,我沒有得到任何結果 – Rahul 2013-03-22 10:49:37

+0

它在Chrome中工作,但不在IE中。我必須使它適用於IE.Any幫助將不勝感激。 – Rahul 2013-03-22 11:48:31

相關問題