Firefox 6的Event.target问题

时间:2011-09-27 06:36:09

标签: javascript javascript-events

在firefox 6中,我尝试获取事件发生的目标元素,但它没有显示任何元素,并且在警报中显示未定义。试图使用firebug工具调试它,并发现事件对象缺少属性“target”。谁能帮我吗?我有以下代码

function getSource(event)
{
    if(!event) 
    { 
        field = window.event.srcElement;
       alert(field);
    }
    else
    {
        field = event.target; 
        alert(field) //Getting undefined in FF6
    }
}

编辑部分

document.onkeypress = getSource;
document.onmouseup = getSource;

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:3)

尝试以下代码

function getSource(e)
{
     if(!e)
        e = window.event;
     field = evt.srcElement || evt.target;
     alert(field);
     return true;
 } 

希望这会对你有所帮助。

答案 1 :(得分:1)

在Fx 6中测试:

<script type="text/javascript">

window.onload = function() {
  document.getElementById('d0').onclick = showTarget;
}

function showTarget(e) {
  e = e || window.event;
  var target = e.target || e.srcElement;
  alert(target.tagName);
}

</script>

<div id="d0">
  <p>click on me</p>
</div>

它应警告“P”。

答案 2 :(得分:0)

同样在类似问题中解释,将功能更改为:

function getSource(evt)
{
    if(!evt) 
        evt = window.event;
    if (evt) {
        field = evt.srcElement || evt.target;
        alert(field);
        return true;
    }
    alert("event not found");
    return false;
}

答案 3 :(得分:0)

function getSource(ev) {
  var el=(ev=ev||window.event).target||ev.srcElement;
  alert(el+" "+el.tagName);
}