I believe you can pass in event into the function inline which will be the event object for the raised event in W3C compliant browsers (i.e. older versions of IE will still require detection inside of your event handler function to look at window.event).
A quick example.
function sayHi(e) {
e.preventDefault();
alert("hi");
}
<a href="http://google.co.uk" onclick="sayHi(event);">Click to say Hi</a>
- Run it as is and notice that the link does no redirect to Google after the alert.
- Then, change the
eventpassed into theonclickhandler to something else likee, click run, then notice that the redirection does take place after the alert (the result pane goes white, demonstrating a redirect).