=波波日志 > JavaScript/Ajax > firefox和IE下activeElement在onblur事件中的表现=

firefox和IE下activeElement在onblur事件中的表现

  今天在csdn看到一个问题,如果在onblur事件中直接调用document.activeElement元素,在IE下得到的焦点的是此对象的下一个兄弟节点,而在Firefox下既然是body元素,即使执行完函数后获取到焦点的确实是此对象的下一个兄弟节点。

  测试代码如
+展开
-HTML
<script language=javascript>
    function checknum(vNewValue, sOldValue, id) {
        alert(document.activeElement.tagName)
        if (document.activeElement.id == "gotosubmit") {
            alert(document.activeElement.id);
        }
        //其他操作
    }
</script> 
<input id="cpsl" onblur="checknum(this.value,1,2);" >
<a href="#" id="gotosubmit" ><img  src="a.gif" /></a>


  只要延时几毫秒后再检查,这样就兼容Firefox了。如下
+展开
-HTML
<script language=javascript>
    function checknum(vNewValue, sOldValue, id) {
        alert(document.activeElement.tagName)
        if (document.activeElement.id == "gotosubmit") {
            alert(document.activeElement.id);
        }
        //其他操作
    }
</script> <!--至少延时1ms执行检查-->
<input id="Text1" onblur="setTimeout(function(){checknum(this.value,1,2);},10)" >
<a href="#" id="A1" ><img  src="a.gif" /></a>
类别:JavaScript/Ajax 作者:波波 日期:2010-12-21 【评论:0】 
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012,桂ICP备05005887号 京公网安备1101055090