2013-02-09 84 views
20

如果我有一個文本頁面如下所述。在頭文件$()部分呼叫$("#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> 

回答

30

你會意識到,在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