无法在Chrome控制台中使用javascript将焦点和光标设置为输入文本

rah*_*ver 6 javascript jquery google-chrome

这是参考这个 SO答案.我在web.whatsapp.com(chrome)上尝试相同的输入搜索字段.这是我的代码:

document.getElementsByClassName("input input-search")[0].focus()
document.getElementsByClassName("input input-search")[0].select()
Run Code Online (Sandbox Code Playgroud)

以上不适用于chrome控制台.

还有jQuery代码:

$(".input-search").focus() 
Run Code Online (Sandbox Code Playgroud)

不起作用.甚至在执行上述方法后我没有看到光标的原因是什么?

K K*_*K K 18

我认为这与class,id,javascript或jQuery的问题无关.这是浏览器控制台的工作方式.运行每个命令后,控制台将获得焦点.因此焦点不适用于控制台的其他输入.

要测试它,请在控制台中运行此代码.

setTimeout(function(){$(".input.input-search").focus()},5000);
Run Code Online (Sandbox Code Playgroud)

执行后立即单击页面上的任意位置以将焦点从控制台中取出.现在5秒后,焦点将设置为输入.

  • 天啊!你为我创造了一天。感谢您的出色回答,我相信这会对很多人有所帮助。 (2认同)
  • @AttitudeMonger 两者都不一样。setTimeout 函数将任务添加到队列中,该任务在给定的时间间隔后执行,而 .focus() 不会添加到任何队列中执行。因此,在 setTimeout 的情况下,毫秒间隔可能足以执行上述任务。您可以阅读有关 setTimeout 如何工作的更多信息。 (2认同)