ホームページ  >  記事  >  ウェブフロントエンド  >  IEとOperaでクローンされた入力フィールドにフォーカスを当てるにはどうすればよいですか?

IEとOperaでクローンされた入力フィールドにフォーカスを当てるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 13:23:01308ブラウズ

How to Focus a Cloned Input Field in IE and Opera?

IE および Opera の FOCUS 入力フィールドの問題

問題:

以下のコードは失敗しますInternet Explorer 7 で複製された入力フィールドにフォーカスするには:

function change() {
    var input = document.getElementById('pas');
    var input2 = input.cloneNode(false);
    input2.type = 'password';
    input.parentNode.replaceChild(input2, input);
    input2.focus();
}

IE の解決策:

Internet Explorer は、要素のフォーカスに関して「遅い」ことで有名です。これを解決するには、setTimeout 関数を使用できます。

setTimeout(function() { document.getElementById('myInput').focus(); }, 10);

Opera の解決策:

Opera では、作成された要素にフォーカスを設定する際に問題が発生する可能性があります。動的に、またはページの読み込み後に表示されます。考えられる解決策については、次のリソースを参照してください:

  • [Opera のテキストボックスの必要なインデックスにフォーカスを設定する方法](https://stackoverflow.com/questions/2099366/how-to-set- focus-in-required-index-on-textbox-for-opera)

拡張ソリューション:

要素が利用できない場合に対処するためすぐに、次のスニペットを使用できます:

setTimeout(

    function( ) {

        var el = document.getElementById( "myInput" ) ;
        ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ;

    }

, 10 ) ;

このコードは、要素が使用可能になるまで 10 ミリ秒ごとに要素のフォーカスを再試行し、読み込みの遅さや要素の表示の遅延に関する潜在的な問題に対処します。

以上がIEとOperaでクローンされた入力フィールドにフォーカスを当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。