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

Javascript
javascript据option的value值快速设定初始的selected选项
document.open() 与 document.write()的区别
javascript实现轮显新闻标题链接
一段效率很高的for循环语句使用方法
使一个函数作为另外一个函数的参数来运行的javascript代码
javascript引用对象的方法代码
javascript下给元素添加事件的方法与代码
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
js 事件小结 表格区别
用js实现计算代码行数的简单方法附代码
收藏的js表单验证控制代码大全
提供一款很不错的万年历查询
用javascript实现计算两个日期的间隔天数
用javascript实现在小方框中浏览大图的代码
用js实现上传图片前的预览(TX的面试题)
用javascript实现li 列表数据隔行变换背景颜色
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
总结AJAX相关JS代码片段和浏览器模型
超强推荐的js编程中的简洁写法收集
javascript 函数式编程

Javascript 中的 ie focus bug 解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 456 ::
收藏到网摘: 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>