如果把input.focus()放在一个setTimeout中延时执行,则就可以获得焦点。 复制代码 代码如下: <BR>(function(){ <BR>function get(id){ <BR>return document.getElementById(id); <BR>} <BR>window.onload = function(){ <BR>get('makeinput').onmousedown = function(){ <BR>var input = document.createElement('input'); <BR>input.setAttribute('type', 'text'); <BR>input.setAttribute('value', 'test1'); <BR>get('inpwrapper').appendChild(input); <BR>input.focus(); <BR>input.select(); <BR>} <BR>get('makeinput2').onmousedown = function(){ <BR>var input = document.createElement('input'); <BR>input.setAttribute('type', 'text'); <BR>input.setAttribute('value', 'test1'); <BR>get('inpwrapper2').appendChild(input); <BR>setTimeout(function(){ <BR>input.focus(); <BR>input.select(); <BR>}, 0); <BR>} <BR>get('input').onkeypress = function(){ <BR>get('preview').innerHTML = this.value; <BR>} <BR>} <BR>})(); <BR> setTimeout 1、未使用 setTimeout 生成 input 2、使用 setTimeout 生成 input 3、另一个例子