在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;
任何帮助都将不胜感激。
答案 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);
}