IE Focus() 問題
在某些瀏覽器中,例如IE7,輸入元素上的focus() 方法可能無法按預期工作。這可能會導致遊標無法定位在輸入欄位內。
IE 解
要解決 IE 中的此問題,可以使用 setTimeout 函數來延遲焦點運算。這會強制 IE 確認更改並正確定位遊標。以下是範例:
setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
替代解決方案
如果 setTimeout 解決方案在 Opera 中不起作用,則可以採取另一種方法。透過 ID 選擇元素,使用 cloneNode() 方法,並將其替換為克隆的元素,即可設定焦點。
緩慢載入頁面的擴充解決方案
如果由於頁面載入緩慢或渲染延遲而導致輸入元素不可用,則需要更強大的解決方案。以下程式碼片段在短暫的間隔後重試焦點操作,直到元素變得可用:
setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;
此方法繼續嘗試設定焦點,直到元素出現在 DOM 中。
以上是如何解決IE7等瀏覽器中的focus()問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!