IE 和 Opera 中的 FOCUS 输入字段问题
问题:
以下代码失败在 Internet Explorer 7 中聚焦克隆的输入字段:
function change() { var input = document.getElementById('pas'); var input2 = input.cloneNode(false); input2.type = 'password'; input.parentNode.replaceChild(input2, input); input2.focus(); }
IE 解决方案:
Internet Explorer 在聚焦元素方面是出了名的“懒惰”。要解决此问题,您可以使用 setTimeout 函数:
setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
Opera 解决方案:
在 Opera 中,您可能会遇到将焦点设置在创建的元素上的问题动态或在页面加载后出现。请参阅以下资源以获取潜在的解决方案:
增强的解决方案:
处理元素可能不可用的情况立即,您可以使用以下代码片段:
setTimeout( function( ) { var el = document.getElementById( "myInput" ) ; ( el != null ) ? el.focus( ) : setTimeout( arguments.callee , 10 ) ; } , 10 ) ;
此代码每 10 毫秒重试一次聚焦元素,直到它可用,解决加载缓慢或元素出现延迟的潜在问题。
以上是如何在 IE 和 Opera 中聚焦克隆的输入字段?的详细内容。更多信息请关注PHP中文网其他相关文章!