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控制台中键入内容,因此没有任何命令会从控制台释放焦点。
如果您单击页面的选项卡以使chrome窗口处于活动状态(使用Windows时),则您尝试从控制台关注()的元素现在应具有焦点。我遇到了同样的问题,并发现它确实将焦点转移到了页面中,但由于您在技术上处于不同的窗口,因此它不会显示。 – asifrc 2013-02-09 00:46:36
@asifrc不在我的Mac 10.8.2的Chrome 24.0.x中。 – nikola 2013-02-09 00:49:34
是的,我对此并不确定,但是根据我的经验,它适用于Windows(更新了我以前的评论)。 – asifrc 2013-02-09 00:52:36