jquery focus命令在chrome命令行中不起作用

Bos*_*ohn 22 javascript jquery google-chrome

如果我有如下所述的文本页面.标题 $("#target").focus(); 中的$()部分调用工作得很好.我还可以将该命令绑定到更逼真的页面中的事件.

但是,如果我打开chrome控制台并键入 $("#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>
Run Code Online (Sandbox Code Playgroud)

nik*_*ola 35

您将意识到,当点击Chrome控制台时,它将从当前页面上的任何输入或textarea控件中窃取焦点,反之亦然.这是因为Chrome控制台实际上是使用与任何其他HTML页面相同的HTML控件实现的,只是具有特殊属性,例如,阻止Chrome以递归方式检查Chrome控制台.

当您在Chrome控制台中输入命令时,即在Chrome控制台中的输入控件中,它将保持焦点.Chrome工程师可能选择以不同方式实施它,但在大多数情况下,用户希望在触发命令后继续在Chrome控制台中键入内容,因此任何命令都不会从控制台释放焦点.

  • 这太棒了!我只是花了很多时间肆虐.focus()无法工作......因为我在控制台测试它.谢谢! (4认同)
  • 如果单击页面的选项卡以使chrome窗口处于活动状态(使用Windows时),则您尝试从控制台聚焦()的元素现在应该具有焦点.我遇到了同样的问题,并发现它确实在页面内传输焦点,但它根本没有显示,因为你在技术上处于不同的窗口. (2认同)