?
? ?大家在做浏览器阻止默认行为的时候通常会用return false;虽然可以实现,但是却有漏洞;
? ? ? (1) ?return false;必须写在最后,这样会导致中间的代码执行后,有可能执行不到return false;
? ? ? (2) ?如果把return false;写到最前,那么之后的代码就执行不到了。
? ?所以,最好的办法就是在代码执行最前就阻止浏览器的默认行为,并且后面还能执行代码。
//W3C,阻止默认行为,放在那里都可以
link.onclick = function(evt){
evt.preventDefault();
alert('hello javascript');
};
//IE,阻止默认行为
link.onclick = function(evt){
window.event.returnValue = false;
alert('hello javascript');
}
//跨浏览器兼容
function preDef(evt){
var e = evt || window.event;
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue = false;
}
}
?
