ASP.NET 中为控件设置焦点为何无效

作者:vkvi 来源:ITPOW(原创) 日期:2007-12-28

前面如何在 ASP.NET Web 服务器控件上设置焦点,在 Firefox 中可以正常工作,而在 IE 中有时却不能正常工作,这是为什么呢?

这不是由于 ASP.NET 造成的,ASP.NET 生成的 JavaScript 也没有问题,而是由于 IE 对 JavaScript 解释不同造成的。

IE 中,网页上的 HTML 控件实际上都被映射为 Windows 控件,焦点不仅有浏览器自身逻辑焦点,也有 Windows 控件焦点,二者同步存在问题,所以经常出现设置焦点无效的情况。

针对打开页面时设置焦点到某一控件,解决办法有两种。

  • 将代码放在 body 的 onload 事件中,<body onload="document.getElementById('controlId').focus();">。
  • 对代码进行延时,setTimeout("document.getElementById('controlId').focus();", 50);。

也就是说,直接写 JavaScript 代码,不使用 ASP.NET 的设置焦点的方法和属性。

相关文章