首頁  >  文章  >  web前端  >  為什麼 `focus()` 在 Internet Explorer 和 Opera 中不起作用?

為什麼 `focus()` 在 Internet Explorer 和 Opera 中不起作用?

Patricia Arquette
Patricia Arquette原創
2024-10-31 09:29:30993瀏覽

Why Doesn't `focus()` Work in Internet Explorer and Opera?

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

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