1

我已经编写了一些 Javascript 代码,它可以捕获键盘和鼠标事件。这个想法是,每当我点击页面上的元素(TD)时,它就会被选中(基本上我只是更改类,使其突出显示),并且我可以使用箭头键来更改选中的元素。

但是,当我在手机(运行 Gingerbread)上的股票 android 浏览器上查看此页面时,浏览器会吃掉所有事件并且我的页面无法正常工作。具体来说,当我点击页面上的某个项目时,我看到文本周围有一个橙色圆角框,我的页面没有收到该事件。当我点击向上和向下箭头键时,框会移动,但我的代码没有这样做,它似乎是浏览器正在做的事情。

我怀疑正在发生的事情是浏览器试图以某种方式“提供帮助”。我正在寻找的是某种方式来提示浏览器不要这样做,或者以其他方式禁用此行为。

更新:这是我看到的问题的更具体示例。我设置了以下简单的侦听器,只是为了查看各个键对应的键码:

document.onkeydown = function(evt) {
    alert(evt.which)
}

现在,如果光标在 TextField 中并且我按下手机上的 Enter 键,则会弹出警报并显示“13”。但是,如果我将焦点移到另一个元素(在本例中为 TD),当我按下回车键时,什么都不会发生

更新:我尝试安装六种不同的浏览器。他们似乎都吞噬了箭头键(这是设备上的物理键盘)并使用它们来滚动屏幕或突出显示页面上的不同元素,而不是将事件传递给我的网络应用程序以便它可以实际使用他们做我想做的事!我见过的唯一不这样做的浏览器是 Firefox,它似乎只是默默地完全忽略了它们。

4

0 回答 0