?
? ?大家在做浏览器阻止默认行为的时候通常会用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; } }
?