IE でフォーカスが機能しない: 解決策
IE7 で focus() 関数が機能しない状況では、入力フィールド内にカーソルを配置するには、別のアプローチが必要です。
IE でこの問題に対処するには、遅延実行動作のため setTimeout 関数を利用します。次のコードを実装します。
<code class="javascript">setTimeout(function() { document.getElementById('myInput').focus(); }, 10);</code>
このコードは、IE の応答遅延に対応して、focus() 関数を実行する前に 10 ミリ秒の遅延を開始します。
ただし、Opera では問題が解決しない可能性があります。 Opera でフォーカスを設定するための潜在的なソリューションを検討することを検討してください。
要素がすぐに利用できない状況に対応する高度なソリューションには、要素がアクセス可能になるまで短い遅延を設けて再試行することが含まれます。これにより、読み込みの遅いページや読み込みに時間がかかる要素との互換性が確保されます。次のコードを実装します。
<code class="javascript">setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;</code>
このコードは、要素が利用可能かどうかをチェックする再帰的な setTimeout 関数を設定し、成功するまで 10 ミリ秒ごとにその要素にフォーカスしようとします。
以上がIE で Focus() が機能しないのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。