ie focus bug 解决方法 |
本文标签:ie,focus,bug, 如果把input.focus()放在一个setTimeout中延时执行,则就可以获得焦点 。 复制代码 代码如下: <script type="text/javascript" > (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; } } })(); </script> <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> |