2011-08-07 57 views
14

有什麼方法可以將焦點設置爲JavaScript中的文檔,即內容區域? document.focus()似乎沒有做任何事情。JavaScript有什麼方法可以集中文檔(內容區域)嗎?

+0

該文檔是否位於瀏覽器選項卡的頂部窗口內?該選項卡是否處於活動狀態(或在後臺)?如何將文檔集中到自己身上? –

+0

1.是,2.是,3.通過使方向鍵導致滾動並且沒有其他任何焦點,例如,鏈接,按鈕,文本框。 – Timwi

+0

我想你想'window.focus();'。通過對焦窗口對象,可以使用箭頭鍵進行滾動... –

回答

24

HTML 4.01焦點僅在元件的情況下,例如表單控件和鏈接討論。在HTML 5中,討論得更爲廣泛。但是,文檔的焦點工作主要依賴於瀏覽器。

您可以試試:

// Give the document focus 
window.focus(); 

// Remove focus from any focused element 
if (document.activeElement) { 
    document.activeElement.blur(); 
} 

這是很好的supported爲好。

+1

活動元素得到很好的支持。請參閱:http://stackoverflow.com/questions/5318415/which-browsers-support-document-activeelement – Benry

+0

Benry - 感謝您的鏈接。我仍然認爲它需要進行功能測試,但與可能的腳本錯誤相比,幾個屬性訪問的成本非常低。不幸的是,我的開發環境剛剛升級,以至於不再使用舊版瀏覽器(不是我的選擇),因此我無法再對舊版本進行更多測試。 :-( – RobG

+0

** IE警告** - 請參閱http://stackoverflow.com/questions/3586139/ie-is-randomly-minimizing-when-a-link-is-clicked –

2

看來,下面的代碼工作...

document.activeElement.blur(); 
+0

如果沒有元素處於活動狀態,它將返回主體元素。如果* activeElement *不被支持,則會引發錯誤。 – RobG

相關問題