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

Javascript
javascript图片自动缩放和垂直居中处理函数
百度空间的popup效果分析
Javascript+CSS实现Flash动态新闻效果(pp原创)
Javascript中Eval函数的使用说明
JS之小练习代码
JS小练习代码之二
js在不刷新的情况下动态添加表格行
使用新的消息弹出框blackbirdjs
jQuery弹出层插件简化版代码下载
javascript仿163网盘无刷新文件上传系统
JQuery AJAX实现目录浏览与编辑的代码
利用递增的数字返回循环渐变的颜色的js代码
Javascript实时柱状图实现代码
JS实现即点即编辑功能代码
JS ListBox的简单功能实现代码
ajaxControlToolkit AutoCompleteExtender的用法
xml分页+ajax请求数据源+dom取结果实例代码
使用EXT实现无刷新动态调用股票信息
封装了一个自动生成渐变字的JS类(clip)
用javascript修复浏览器中头痛问题的方法整理篇[译]

Javascript 中的 ie focus bug 解决方法


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