当前位置: 首页 > 图文教程 > 网络编程 > Javascript > ie focus bug 解决方法

Javascript
代码生成器 document.write()
不错的文字特效,逐字变色效果
javascript下用键盘控制层的移动的代码
有提示确定与取消功能的弹出式窗的代码
js下弹出窗口的变通
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
用JAVASCRIPT如何给<textarea></textarea>赋值
将光标定位到textarea的某一行的javascript代码
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
让textarea控件的滚动条怎是位与最下方
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
在textarea中屏蔽js的某个function的javascript代码
textarea的value是html文件源代码,存成html文件的代码
在textarea中显示html页面的javascript代码
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
如何做到打开一个页面,过几分钟自动转到另一页面
JS 建立对象的方法
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
JS Timing
用javascript实现图片马赛克后显示并切换

Javascript 中的 ie focus bug 解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 515 ::
收藏到网摘: n/a

在IE中,新创建的input没有如预期的获得焦点。 如果把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>