如何在Firefox上的html表上触发onkeydown事件?

时间:2009-05-20 12:10:17

标签: javascript firefox

我想捕获表格单元格上的击键。 我有以下代码在IE上工作但在Firefox / Chrome上没有。

<table id="testing" onkeydown="alert('testing')"><br />
    <tr><td>testing</td></tr>` <br />
    </table>
<br />

有什么建议吗?

2 个答案:

答案 0 :(得分:10)

http://www.w3schools.com/jsref/jsref_onkeydown.asp指定大多数标记支持onkeydown。

您需要将tabindex属性(例如tabindex="1")设置为某个值,以便识别此表是键盘可选的。这允许触发键盘事件。以下将在firefox中运行:

<table id="testing" onkeydown="alert('testing')" tabindex="0"><br />
<tr><td>testing</td></tr><br />
</table> 

答案 1 :(得分:2)

这似乎是Firefox和Chrome对规范的解释而不是您的代码的问题。我亲自尝试过并重现了这个问题。

W3C规范显示表格单元格应该支持onkeydown,但目前Firefox / Chrome似乎不支持此类,您可以尝试通过其网站将此报告为Firefox错误。你通常会得到一些反馈,说明它为什么会被打破(或者为什么他们认为它没有被破坏而且不会像过去那样修复它)

我可以问为什么你需要捕获表格单元格上的击键吗?

  • 如果您希望人们输入文字,那么您应该使用&lt; input&gt;标签将记录关键新闻事件。
  • 如果击键是某种导航,那么基于鼠标点击事件完成的上下文菜单可能会更好