首頁  >  文章  >  web前端  >  為什麼 Focus() 在 IE 中不起作用以及如何修復它?

為什麼 Focus() 在 IE 中不起作用以及如何修復它?

Linda Hamilton
Linda Hamilton原創
2024-11-02 06:41:02662瀏覽

Why Doesn't Focus() Work in IE and How Can I Fix It?

焦點在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( &quot;myInput&quot; ) ;
    ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ;

}

, 10 ) ;</code>

此程式碼設定一個遞歸 setTimeout 函數,用於檢查元素的可用性並嘗試每 10 毫秒關注它一次,直到成功。

以上是為什麼 Focus() 在 IE 中不起作用以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn