Gunnar Bittersmann: Unterschied window.onclick vs. window.addEventListener()

Beitrag lesen

@@alle:

window.onclick = showNodeName;  
  
function showNodeName(e)  
{  
  if (!e) var e = window.event;  
  var target = e.target || e.srcElement;  
  if (target.nodeType == 3) target = target.parentNode; // defeat Safari bug  
  
  alert(target.nodeName);  
  return false;  
}

tut das Erwartete: Es wird der Elementtyp der jeweiligen Box, auf die geclickt wurde, ausgegeben. Beim Click auf einen Link wird "A" ausgegeben, dem Link wird nicht gefolgt (return false;).

Tauscht man nun
  window.onclick = showNodeName;
gegen
  window.addEventListener("click", showNodeName, false);
wird hingegen beim Click auf einen Link nach Schließen des Dialogfensters dem Link gefolgt (Firefox 3).

Warum ist das so? Wie ließe sich das verhindern?

Live long and prosper,
Gunnar

PS: Für welche Safaris ist
  if (targ.nodeType == 3) target = target.parentNode;
vonnöten? Braucht man das heutzutage noch?

--
Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)