2013-12-19 68 views
1

我正在研究填字遊戲解析器(波蘭語)的網頁遊戲(http://szarada.net/wyscigi/)。我打算介紹的功能之一是支持使用箭頭鍵在光標圖上移動光標。爲了提供更多的用戶體驗,我希望在任何可能的情況下(爲了讓用戶通過長鍵按下多個字段來移動光標)支持按鍵事件(而不是按鍵或按鍵)。如何檢測瀏覽器中是否有按鍵支持方向鍵?

我能夠通過檢查幾個互聯網資源(包括多個StackOverflow條目)來實現的是,只有一些瀏覽器確實支持按方向鍵的按鍵。

這裏是我的問題 - 如何檢測瀏覽器是否支持觸發箭頭鍵按鍵事件的功能?我一直在考慮檢測瀏覽器(加上瀏覽器版本),但基於特徵的解決方案顯然更具可擴展性。我沒有發現任何有用的東西,例如Modernizr。

我正在使用jQuery,以便基於jQuery的建議對我最有利。

+0

玩[** **這裏(http://unixpapa.com/js/testkey.html)一對夫婦的瀏覽器,您可以決定是否真的只想查看_keypress_,那麼您將不得不使用_NumPad_鍵(因此其他數字鍵也會有相同的結果) –

+0

[JavaScript密鑰處理和瀏覽器兼容性]的可能重複(http: //sackoverflow.com/questions/3476000/javascript-key-handling-and-browser-compatibility) – Liam

回答

0

其實,keyDown是你正在尋找的事件。如果用戶持續按下該鍵,則會重複觸發。

所以,不要使用KeyPress,而應該使用KeyDown,而且在所有瀏覽器中都可以。

+0

謝謝,pryma!我改變了我的代碼,並聽取了關鍵事件。在Chrome,FF,IE,Opera下一切正常。然而,我沒有收到我的問題的答案 - 是否有任何方法來檢測keypress事件是否支持箭頭鍵,這不僅僅是查詢瀏覽器的類型/版本,而是以此爲基礎得出支持。 –

0

我知道這是2013年,但我不得不去做自己的按鍵檢測,因爲這並沒有幫助我。下面是我用來獲取周圍的鍍鉻的Android不支持按鍵解決方案:

$(function() { 
     "use strict"; 
     var keypressDetected = false; 

     $('body').on('keypress', function(event) { 

       keypressDetected = true; 
       alert('key press supported!'); 

     }); 

     var e = jQuery.Event("keypress"); 

     e.which = 50; // The key code that you wish to test for 

     $("body").trigger(e); 

     if (!keypressDetected) { 

      // ... do magic here 
     } 
    }); 
相關問題