Наведите курсор на таблицу с помощью Javascript в Chrome

#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() это не работает, но в моем случае это работает (потому что я вижу подсветку), но курсора нет.