引数eは、アンカー要素に埋め込まれたスクリプトから呼び出された場合は未定義になります。
function testOverrideClick(e) {
console.log(e);
e.preventDefault();
}
....
<body onload="afterLoad();">
<a id="testAnchor" href="http://www.google.com" onclick="testOverrideClick()">test link</a>
ただし、スクリプトからイベントハンドラーを登録すると、eは有効になります。
function afterLoad() {
document.getElementById("testAnchor").onclick = testOverrideClick;
}
...
<a id="testAnchor" href="http://www.google.com">test link</a>
何が起こっていますか?