在Internet Explorer 和Opera 中聚焦輸入欄位
在JavaScript 中使用focus() 方法時,在某些瀏覽器中可能會出現一些問題。此問題突顯 focus() 在 Internet Explorer 7 中不起作用,導致遊標位於所需輸入欄位之外的問題。
Internet Explorer 的解決方案:
In Internet Explorer 中的 focus() 由於其惰性性質而需要一些額外的關注。若要解決此問題,請使用 setTimeout() 函數。例如:
setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
Opera 解決方案:
對於 Opera,考慮探索與在文字方塊所需索引中設定焦點相關的解決方案。
改善了對延遲元素可用性的處理:
在某些情況下,元素可能無法立即可用,導致輸入欄位失去焦點。為了解決這個問題,以下改進的程式碼會在短時間間隔後重試焦點:
setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;
以上是為什麼 `focus()` 在 Internet Explorer 和 Opera 中不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!