2010-06-05 30 views
2

在我的GWT程序中,我有一個有選定行的表格。我想用鍵盤上的向上和向下鍵移動行選擇。所以我必須以某種方式抓住關鍵事件。如何在GWT表中監聽鍵盤事件?

GWT文檔僅處理輸入字段中的鍵事件。但我沒有輸入字段!

這可能嗎?也許這是一個DOM/JavaScript的限制,即GWT不能解決...

回答

2

它的工作原理是利用Event.addNativePreviewHandler(NativePreviewHandler handler)

但也有一些事情要考慮:

  • 處理程序不是僅限於小部件。這對您的應用程序是全球性的。如果您更改小部件,您可能需要手動註冊並取消註冊處理程序。
  • 瀏覽器與鍵盤事件存在差異。一些瀏覽器發送keyDown和keyPress事件,其他瀏覽器只發送keyDown事件。

要解決的第二個問題,你可以使用此代碼獲取瀏覽器的名稱:

private static native String getUserAgent() /*-{ 
    return navigator.userAgent.toLowerCase(); 
}-*/;