2011-01-12 74 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

也尝试过。同样的结果。愚蠢的黑莓! ;) –