2010-11-09 24 views
2

我有一個jQuery中的功能,做了類似下面的事情,以允許全站範圍的鍵盤導航。在jQuery中的站點範圍的導航,但避免在Mac上的命令

function listenForNavKeys(e) { 

    // Alt+1 Navigates home 
    if(e.which == 49) { 
    window.location.replace(location.protocol + '//' + location.host + '/application/views/home.php'); 
    } 
} 

對於行動的的這個例子,去Facebook和按下Alt鍵+ 到瀏覽您的個人資料。在Mac上,必須使用Ctrl + Alt + 。但是,例如,當我收聽密鑰50時,此密鑰代碼也會響應Cmd + 。這不是所希望的行爲,因爲這是多少用戶在瀏覽器中的標籤之間切換的次數。瀏覽器功能仍然有效,但當您導航到另一個選項卡時,該頁面將在別處導航。

那麼像Facebook這樣的網站如何處理這個事件呢?我真的應該聽什麼keyCode?

回答

1

哎呦。通過我自己太快得出這個結論。我很抱歉。

首先,我上面的代碼是錯誤的。我的意思是代碼中的// Alt+1。其次,我應該尋找if(e.altKey && e.which == 49)。那會給你正確的Alt +#組合。