2012-11-02 57 views
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的preventDefault()不工作根据需要

<a title="View Log" onclick="return confirmDel(this);" href="index.php?mod=tech_support">delete</a> 

上面的代码工作的Chrome浏览器不错,但在Mozilla失败。 但是当我用return false而不是event.preventDefault();它在两个工作正常。 任何人都可以解释为什么会发生这种情况

+1

这是实际的代码?因为我看到'evt'而不是'event' – Prinzhorn

+0

正是他所说的。这不应该在铬。 – SoonDead

+0

ya事件是全球性的 –

回答

3

问题是与event.preventDefault()。您要通过的事件是evt,而不是event。你必须使用:在Chrome

evt.preventDefault(); 

event.preventDefault()的作品,因为它模仿了向后兼容旧的IE浏览器的行为(就像它也有innerText)。

在旧的IE中,事件对象为window.event。所以调用event.preventDefault()会调用全局事件对象,该对象可在Chrome和IE中使用,但不支持不实现此非标准行为的Firefox。

+0

感谢您提供此信息,我认为所有浏览器都可以使用该活动。 –

+1

@ArunKillu不,它是一种不遵循任何标准的旧IE行为。这种行为在Chrome for IE中兼容,但并非所有浏览器都出于这些原因实现IE行为。 –