Как я могу вызвать событие onkeydown в html-таблице в Firefox? - PullRequest
6 голосов
/ 20 мая 2009

Я хочу зафиксировать нажатия клавиш в ячейках таблицы. У меня есть следующий код, который работает на IE, но не на Firefox / Chrome.

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

Есть предложения?

Ответы [ 2 ]

10 голосов
/ 20 мая 2009

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 голосов
/ 20 мая 2009

Похоже, это проблема интерпретации спецификаций Firefox и Chrome, а не вашего кода. Я сам попробовал это и воспроизвел проблему.

Спецификации W3C показывают, что ячейки таблицы должны поддерживать onkeydown, но в настоящее время это не поддерживается Firefox / Chrome, вы можете попробовать сообщить об этом как об ошибке Firefox через их веб-сайт. Вы обычно получаете некоторую обратную связь относительно того, почему он сломан (или почему они думают, что он не сломан и не будет исправлять это, как я делал в прошлом)

Могу я спросить, зачем вам нужно фиксировать нажатия клавиш в ячейках таблицы?

  • Если вы ожидаете, что люди будут вводить текст, вам следует использовать теги , которые будут хорошо регистрировать события нажатия клавиш.
  • Если нажатия клавиш - это какая-то навигация, возможно, лучше было бы создать контекстное меню, основанное на событиях щелчка мыши
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...