Greybox:无法将焦点移动到控件,因为它是不可见的,未启用的,或者是不接受焦点的类型

时间:2010-08-10 18:44:25

标签: javascript

  

可能重复:
  JavaScript: Visibility error in Internet Explorer when setting focus on an input element

我有一个在灰盒子中加载的页面。我将焦点设置为document.getElementById("textfield").focus() - 这在直接调用页面时工作正常。

但是当加载到灰盒子中时,将焦点设置在onload()事件上会返回:

  

无法将焦点移动到控件上,因为它是不可见的,未启用,   或者不接受焦点的类型

稍后调用它可以正常工作。

有什么想法吗?

谢谢!

2 个答案:

答案 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>