jQuery的焦点命令不能从铬命令行工作

问题描述:

如果我有一个文本页面如下所述。在头文件$()部分呼叫$("#target").focus();工作得很好。我还可以将该命令绑定到更加实际的页面中的事件。jQuery的焦点命令不能从铬命令行工作

但是,如果我打开镀铬控制台并键入$("#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> 

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

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

+2

如果您单击页面的选项卡以使chrome窗口处于活动状态(使用Windows时),则您尝试从控制台关注()的元素现在应具有焦点。我遇到了同样的问题,并发现它确实将焦点转移到了页面中,但由于您在技术上处于不同的窗口,因此它不会显示。 – asifrc 2013-02-09 00:46:36

+0

@asifrc不在我的Mac 10.8.2的Chrome 24.0.x中。 – nikola 2013-02-09 00:49:34

+0

是的,我对此并不确定,但是根据我的经验,它适用于Windows(更新了我以前的评论)。 – asifrc 2013-02-09 00:52:36