<script>
function confirmDel(evt)
{var con =false;
con=confirm('Do you really want to remove this purchase?.');
if(con)
{
return true;
}else
{
event.preventDefault();
}
}
</script>
我的HTML
<a title="View Log" onclick="return confirmDel(this);" href="index.php?mod=tech_support">delete</a>
上面的代码在Chrome浏览器中工作正常但在Mozilla中失败。
但是当我使用return false
而不是event.preventDefault();
时,它在两者中都可以正常工作。
谁能解释为什么会发生这种情况
答案 0 :(得分:3)
问题在于event.preventDefault()
。您传递的事件是evt
,而不是event
。你必须使用:
evt.preventDefault();
event.preventDefault()
适用于Chrome,因为它模仿旧的IE行为以实现向后兼容性(就像它也有innerText
)。
在旧IE中,事件对象为window.event
。因此,调用event.preventDefault()
会调用全局事件对象,该对象可在Chrome和IE中运行,但不能调用未实现此非标准行为的Firefox。