#javascript #html #html-table
#javascript #HTML #html-таблица
Вопрос:
<table id="z" border="1" width="20px" contenteditable>
<tbody>
<tr>
<th></th>
</tr>
</tbody>
</table>
Как навести курсор на эту ячейку (= таблицу) с помощью Javascript — как это работает после обычного щелчка? Итак, после этого там должна работать печать с клавиатуры. focus()
не работает, но работает с. <input>
Я использую Google Chrome.
Комментарии:
1.
document.getElementById("z").focus();
может быть?2. @obscure Читайте внимательнее. Я уже сказал, что
focus()
это не работает.3. Я видел, что вы написали. Более того, я проверил то, что написал, прежде чем писать, и, по-видимому, курсор мигает после выполнения приведенной выше строки.
4. @obscure Мы можем проверить это с помощью
console
иsetTimeout
. После этого я вижу синюю подсветку фокуса, но курсора нет, и я не могу печатать.5. @oleedd возможно, это зависит от браузера. По крайней мере, в FireFox это работает безупречно.
Ответ №1:
Но это работает!
let el = document.getElementById('z');
if (el !== null) {
el.focus();
}
<table id="z" border="1" width="20px" contenteditable>
<tbody>
<tr>
<th></th>
</tr>
</tbody>
</table>
Комментарии:
1. Я использую Chrome и вижу синюю подсветку фокуса, но курсора нет, и я не могу печатать.
Ответ №2:
Поскольку это проблема совместимости с браузером для focus()
on an documentElement
, лучше, чтобы ошибка 467043 была устранена в Chrome.
Комментарии:
1. Там сказано, что
focus()
это не работает, но в моем случае это работает (потому что я вижу подсветку), но курсора нет.