焦點在IE 中不起作用:解決方案
如果focus() 函數在IE7 中無法運行,需要採用替代方法將遊標定位在輸入欄位內。
要在 IE 中解決此問題,請利用 setTimeout 函數,因為它的執行行為會延遲。實作以下程式碼:
<code class="javascript">setTimeout(function() { document.getElementById('myInput').focus(); }, 10);</code>
此程式碼在執行 focus() 函數之前啟動 10 毫秒的延遲,以適應 IE 的延遲回應。
但是,該問題在 Opera 中可能仍然存在。考慮探索在 Opera 中設定焦點的潛在解決方案。
一種高級解決方案,可滿足元素可能不易可用的情況,涉及短暫延遲重試,直到元素變得可訪問。這確保了與緩慢加載的頁面或需要時間加載的元素的兼容性。實作以下程式碼:
<code class="javascript">setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;</code>
此程式碼設定一個遞歸 setTimeout 函數,用於檢查元素的可用性並嘗試每 10 毫秒關注它一次,直到成功。
以上是為什麼 Focus() 在 IE 中不起作用以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!