firefox和IE下activeElement在onblur事件中的表现
今天在csdn看到一个问题,如果在onblur事件中直接调用document.activeElement元素,在IE下得到的焦点的是此对象的下一个兄弟节点,而在Firefox下既然是body元素,即使执行完函数后获取到焦点的确实是此对象的下一个兄弟节点。
测试代码如下
只要延时几毫秒后再检查,这样就兼容Firefox了。如下
原创文章,转载请注明出处:firefox和IE下activeElement在onblur事件中的表现
测试代码如下
+展开
-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>
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>
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>
加支付宝好友偷能量挖...
原创文章,转载请注明出处:firefox和IE下activeElement在onblur事件中的表现