可能重复:
JavaScript: Visibility error in Internet Explorer when setting focus on an input element
我有一个在灰盒子中加载的页面。我将焦点设置为document.getElementById("textfield").focus()
- 这在直接调用页面时工作正常。
但是当加载到灰盒子中时,将焦点设置在onload()事件上会返回:
无法将焦点移动到控件上,因为它是不可见的,未启用, 或者不接受焦点的类型
稍后调用它可以正常工作。
有什么想法吗?
谢谢!
答案 0 :(得分:7)
这是IE上众所周知的问题。
您可以阅读here。
解决方案是使用setTimeout()函数来延迟focus()执行时间。
您需要更换行:
document.getElementById("textfield").focus();
以下内容:
setTimeout(function() { document.getElementById("textfield").focus(); }, 10);
答案 1 :(得分:1)
刚刚发布一个快速答案......今晚必须解决这个问题。在灰盒子页面显示后,使用setTimeout短暂调用焦点功能。
我的版本中使用了一个小jQuery,因为它已经在这个项目中,但你可以轻松使用window.onload()
<script type="text/javascript">
$(document).ready(function() {
setTimeout ( "document.getElementById('AdminID').focus(); ", 500 );
});
</script>