焦点在 IE 中不起作用:解决方案
如果 focus() 函数在 IE7 中无法运行,需要采用替代方法将光标定位在输入字段内。
要在 IE 中解决此问题,请利用 setTimeout 函数,因为它的执行行为会延迟。实现以下代码:
<code class="javascript">setTimeout(function() { document.getElementById('myInput').focus(); }, 10);</code>
此代码在执行 focus() 函数之前启动 10 毫秒的延迟,以适应 IE 的延迟响应。
但是,该问题在 Opera 中可能仍然存在。考虑探索在 Opera 中设置焦点的潜在解决方案。
一种高级解决方案,可满足元素可能不易可用的情况,涉及短暂延迟重试,直到元素变得可访问。这确保了与缓慢加载的页面或需要时间加载的元素的兼容性。实现以下代码:
<code class="javascript">setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;</code>
此代码设置一个递归 setTimeout 函数,用于检查元素的可用性并尝试每 10 毫秒关注它一次,直到成功。
以上是为什么 Focus() 在 IE 中不起作用以及如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!