如果把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>
推荐阅读
用DIV完美模拟createPopup 弹出窗口(脚本之家修正版),支持Firefox,ie,chrome
补增一个效果图!
模拟Popup
body{
margin:0;
padding:0;
text-align:center;
}
#container{
margin:50px auto;
padding:10px auto;
}
#popupcontent{
position:absolut>>>详细阅读
本文标题:ie focus bug 解决方法
地址:http://www.17bianji.com/kaifa2/JS/28166.html
1/2 1