Подтвердить что ты не робот

Команда jquery focus не работает из командной строки chrome

Если у меня есть текстовая страница, как описано ниже. Вызов $("#target").focus(); в разделе $() в заголовке работает просто отлично. Я также могу связать эту команду с событиями на более реалистичной странице.

Однако, если я открою консоль хром и наберу $("#target").focus(); , это не изменит фокус. Если я запустил $("#target").val("something");, это изменит значение на экране, но оно не работает с фокусом.

Очевидно, что это не критическая проблема, но мне действительно интересно, почему это происходит. У кого-нибудь есть идея?

<html>
  <head>
    <script src="jquery-1.9.1.js"></script>
    <script>
      $(function(){
         $("#target").focus();
      });
    </script>
  </head>

 <body>
   <input id="target" type="text">
 </body>
</html>
4b9b3361

Ответ 1

Вы поймете, что при нажатии на консоль Chrome он будет красть фокус с любого элемента управления ввода или текстовой области на текущей странице и наоборот. Это потому, что консоль Chrome фактически реализована с использованием тех же элементов управления HTML, что и любая другая HTML-страница, только со специальными свойствами, которые, например, не позволяют Chrome проверять консоль Chrome рекурсивно.

При вводе команды в консоли Chrome, т.е. в элементе управления ввода, который является частью консоли Chrome, он будет держать фокус. Возможно, инженеры Chrome решили реализовать его по-разному, но в большинстве случаев пользователь хочет продолжить ввод в консоли Chrome после запуска команды, поэтому никакая команда не освободит фокус с консоли.