我有一些我编写的Javascript代码,可以捕获键盘和鼠标事件。我的想法是,每当我点击页面上的一个元素(TD)时,它就会被选中(基本上我只是更改了类,因此它被突出显示),我可以使用箭头键来改变选择的元素。
然而,当我在手机上的股票android浏览器上查看此页面(运行Gingerbread)时,浏览器会播放所有事件,而我的页面无法正常运行。具体来说,当我点击页面上的某个项目时,我看到文本周围有一个橙色的圆形框,我的页面没有得到该事件。当我按下向上和向下箭头键时,框移动,但我的代码没有这样做,它似乎是浏览器正在做的事情。
我怀疑发生的事情是浏览器试图以某种方式“有用”。我正在寻找的是一些方法来给浏览器提示不要这样做,或以其他方式禁用此行为。
更新:这是我看到的问题的一个更具体的例子。我设置了以下简单的监听器,只是为了看看哪些密钥代码与各种密钥相对应:
document.onkeydown = function(evt) {
alert(evt.which)
}
现在,如果光标位于TextField中并按下手机上的回车键,则会弹出警告并显示“13”。但如果我将焦点移到另一个元素(在这种情况下是TD),当我按下Enter键时, NOTHING HAPPENS 。
更新:我尝试安装了六种不同的浏览器。它们似乎都吞下了箭头键(这是设备上的物理键盘),并使用它们滚动屏幕或突出显示页面上的不同元素,而不是将事件传递给我的Web应用程序,以便它可以实际使用他们做我想做的事!我见过的唯一没有这样做的浏览器是Firefox,它似乎只是默默地完全忽略它们。