首頁 > web前端 > css教學 > 主體

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

Linda Hamilton
發布: 2024-11-02 06:41:02
原創
676 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!