【问题标题】:How can I trigger an onkeydown event on html table on Firefox?如何在 Firefox 的 html 表上触发 onkeydown 事件?
【发布时间】:2017-02-27 11:32:43
【问题描述】:

我想捕捉表格单元格上的击键。 我有以下代码可在 IE 上运行,但不能在 Firefox/Chrome 上运行。

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

有什么建议吗?

【问题讨论】:

    标签: javascript firefox


    【解决方案1】:

    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> 
    

    【讨论】:

      【解决方案2】:

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

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

      我能问一下为什么需要捕获表格单元格上的击键吗?

      • 如果您希望人们输入文本,那么您应该使用 标签,它可以很好地注册按键事件。
      • 如果击键是某种导航,那么基于鼠标单击事件完成的上下文菜单可能会更好

      【讨论】:

      • * 我会报告的。 * 我将它用于导航,与鼠标导航并行。
      • @Stavros,你报告了这个问题吗?如果有,有链接吗?
      • @rstackhouse 不,我没有,但我希望它现在已经修复,尤其是在使用 jQuery 时..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多