2011-11-26 50 views

回答

3

你將不得不依靠javascript來做到這一點,因爲IE5不支持html5自動對焦。這裏有一篇很好的博客文章:http://www.html5tutorial.info/html5-autofocus.php

基本上,你首先檢查屬性是否受支持,然後使用javascript手動對焦使用focus()方法,如果不是。

+0

從今天開始,12/13/2016,autofocus關鍵字在Windows 10的IE 11.0.36中運行,但在Windows 7上的IE 11.0.35中運行。非常令人煩惱。 –

-3

自動對焦在IE瀏覽器只是

<input type="text" id="searchbar" autofocus /> 

<input type="text" id="searchbar" autofocus="autofocus"/> 

更多信息,請參見http://msdn.microsoft.com/en-us/library/windows/apps/hh441087(v=vs.85).aspx

+3

你錯了。這兩種語法都適用於支持「自動對焦」的所有瀏覽器。但是,Internet Explorer僅支持從版本10開始。 – duri

+0

那麼,我如何包含這兩種瀏覽器? – James

+0

這是不正確的。請參閱http://stackoverflow.com/a/25449778/1430996 –

32

這裏是一個一行(當然,實際的邏輯之一線)使用jQuery來使自動對焦工作在IE中。如果焦點已經確定 - 換句話說,在任何支持HTML5的瀏覽器中,它都會被釋放出來。

$(function() { 
    $('[autofocus]:not(:focus)').eq(0).focus(); 
}); 

我解釋了它是如何工作的in my blog。而here是一個更新的jsFiddle在IE中工作。

+0

如果有(錯誤)*兩個具有'autofocus'屬性的元素會怎麼樣?在兼容的瀏覽器中,這段代碼不會找到第二個(未聚焦的)元素,而是將焦點設置在那裏? – xec

+3

不,@ xec,這就是'.eq(0)'的用途。另外,如果有兩個'autofocus'元素,那麼這是頁面中的一個錯誤,並且哪個人獲得焦點並不重要,對吧? –

+2

在':not(:focus)'選擇器運行後調用'.eq(0)',所以這沒有什麼區別。我同意這不是一個大問題,但它只是一個錯誤,當html無效。無論如何,我認爲'$('[autofocus]')。focus()'應該足夠了。 – xec

相關問題