0
<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();它时,两者都可以正常工作。谁能解释为什么会这样

4

1 回答 1

3

问题出在event.preventDefault(). 你传递的事件是evt,不是event。你必须使用:

evt.preventDefault();

event.preventDefault()在 Chrome 中工作,因为它模仿旧的 IE 行为以实现向后兼容性(就像它也有innerText)。

在旧 IE 中,事件对象是window.event. 所以调用event.preventDefault()调用全局事件对象,它适用于 Chrome 和 IE,但不是 Firefox,它没有实现这种非标准行为。

于 2012-11-02T09:17:44.657 回答