firefox中的event.explicitOriginalTarget使用问题
深邃老夏 2011-10-31 11:19:18 今天开发狂遇IE和FF兼容性问题,直接说问题吧。
把问题最简化的代码:
<input id="test1" type="text"onblur="a(event)"/><br/>
<label id="test3">点我就可以弹出正确的!</label><input id="test2" type="text" />
<script type="text/javascript">
function a(event){
var ele;
if(window.event){
ele=document.activeElement;
}else{
ele=event.explicitOriginalTarget;
}
alert(ele.value);
}
</script>
此时我已经解决了IE和FF得到当前焦点所在元素的兼容性问题,因为FF不兼容document.activeElement,必须用事件来得到当前焦点所在元素,也就是event.explicitOriginalTarget。但是点击的结果是,IE一切正常,但是FF的话,点击id="test3"的label,alert出正确的test3;但是点击id="test2"的input type="text",显示的却是id="test1"的input type="text" !!!
在这里我可以给出点我掌握的信息,首先只有input type="text"和input type="password"会标签会出现这样的问题,input type="radio"和其他的都不会。其次,看网上一些资料是说对于input type="text",event是先执行onclick或其他的事件,所以不是传入的event就不知道是什么的了。我觉得应该和这个有些关系,但是小弟是纠结好久没出来答案,希望有遇到此问题的高手帮忙解答下!