ie focus bug

2163 단어 focus
IE에서 새로 만든 input는 예상대로 초점을 얻지 못했습니다.
하면, 만약, 만약...focus()를 setTimeout에 놓고 실행하면 초점을 얻을 수 있습니다.

  (function(){
        
        
        function get(id){
            return document.getElementById(id);
        }
        
        window.onload = function(){
            get('makeinput').onmousedown = function(){
                var input = document.createElement('input');
                input.setAttribute('type', 'text');
                input.setAttribute('value', 'test1');
                get('inpwrapper').appendChild(input);
                input.focus();
                input.select();
            }
            get('makeinput2').onmousedown = function(){
                var input = document.createElement('input');
                input.setAttribute('type', 'text');
                input.setAttribute('value', 'test1');
                get('inpwrapper2').appendChild(input);
                setTimeout(function(){
                    input.focus();
                    input.select();
                }, 0);
            }
            get('input').onkeypress = function(){
                get('preview').innerHTML = this.value;
            }
        }
    })();

    <h1><code>setTimeout</code></h1>
    <h2>1、  <code>setTimeout</code></h2>
    <button id="makeinput">  input</button>
    <p id="inpwrapper"></p>
    <h2>2、  <code>setTimeout</code></h2>
    <button id="makeinput2">  input</button></h2>
    <p id="inpwrapper2"></p>
    <h2>3、 </h2>
    <p><input type="text" id="input" value=""/><span id="preview"></span></p>

좋은 웹페이지 즐겨찾기