2011-01-12 86 views
0

我是處理BlackBerry設備的新手。我目前正在運行9700上的JavaScript問題並陷印按鍵事件並獲取正確的鍵碼。黑莓鍵盤/按鍵的JavaScript支持

我有這個JavaScript:

function numbersonly(e) { 
    var key 
    if(window.event) { 
     key = window.event.keyCode; // IE 
    }else{ 
     key = e.which; // Firefox 
    } 

    alert('keycode : ' + key); 

}

而且它通過一個不顯眼的addEvent腳本連接到輸入字段。

在一個標準的桌面瀏覽器(Firefox和IE)上,它會做你認爲它的功能......按一個按鍵會通過警報顯示鍵碼。

在BlackBerry上,但是,按一個鍵做兩件事情之一:

  • 如果按鍵是數字1到9,什麼都不會發生。
  • 如果它是任何其他鍵,keyCode是'未定義'。

任何想法是怎麼回事?我認爲這是對BlackBerry JavaScript支持的限制。

UPDATE:

測試這在9800模擬器爲好,這是運行OS6。問題在那裏不存在。所以這是BlackBerry OS5或BlackBerry的物理鍵盤的問題。

回答

0

我不確定在添加內聯事件處理程序時是否設置了事件變量。

您是否嘗試過從javascript設置事件處理程序?因此,像

document.getElementById('mytextelement').onkeypress = keytest; 
+0

e.keyCode那會是黑莓手機爲中心的問題?例如,上面的腳本就像在Firefox中一樣工作。 –

+0

@DA我不認爲有任何規範說明必須爲內聯事件處理程序設置_event_變量。它在IE中工作,因爲IE過去使用window.event而不是將事件對象與函數一起傳遞。 Firefox添加了與IE兼容的行爲。我不確定BB是否也是如此。 – Gerben

+0

呃...我會試試看。也就是說,我們正在處理的應用程序將所有JS作爲內聯事件處理程序。好或壞,這可能是我需要工作的模型。 –

0

嘗試使用,而不是e.which

+0

也嘗試過。同樣的結果。愚蠢的黑莓! ;) –