IE Focus() の問題
IE7 などの一部のブラウザでは、入力要素の focus() メソッドが期待どおりに動作しない場合があります。これにより、カーソルが入力フィールド内に配置されなくなる可能性があります。
IE の解決策
IE でこの問題を解決するには、setTimeout 関数を使用して遅延させることができます。フォーカス操作。これにより、IE は変更を認識し、カーソルを正しく配置するようになります。以下に例を示します。
setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
代替ソリューション
setTimeout ソリューションが Opera で機能しない場合は、別のアプローチを取ることができます。 cloneNode() メソッドを使用して要素を ID で選択し、複製された要素に置き換えることで、フォーカスが設定されます。
ページの読み込みが遅いための拡張ソリューション
ページの読み込みが遅い、またはレンダリングが遅いために入力要素が利用できない場合は、より堅牢なソリューションが必要です。次のコード スニペットは、要素が使用可能になるまで短い間隔の後にフォーカス操作を再試行します:
setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;
このアプローチでは、要素が DOM に存在するまでフォーカスの設定を試行し続けます。
以上がIE7 およびその他のブラウザでの focus() 問題を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。