Vielen Dank. So geht es!
Hier nochmal der Vollständigkeit halber das vollständige Script.
Man muss also für die beiden inneren Links einen sog. EventListener installieren, der verhindert, dass nach dem Ausführen des inneren Links auch noch der äußere ausgeführt wird. Beide Links sind als Events zu verstehen. Näheres findet ihr hier: http://www.mediaevent.de/javascript/event_listener.html
Danke - cyberhorst
<html>
<head>
<script type="text/javascript">
/**
* verhindert, dass auch noch das Event vom Eltern-Element ausgeführt wird
* siehe: http://www.phpforum.de/archiv_60540_onclick@event@verhindern_anzeigen.html
*/
function stopEvent(e) {
e=e || window.event;
if(e && e.stopPropagation) {
e.stopPropagation();
} else if(typeof(e.cancelBubble)=="boolean") {
e.cancelBubble=true;
}
}
/**
* ersetzt das klassische addEventListener, da dies vom IE nicht korrekt umgesetzt wird
* siehe: http://www.mediaevent.de/javascript/event_listener.html
* John Resig, erklärt bei quirksmode (http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html)
*/
function addEvent( obj, type, fn ) {
if (obj.addEventListener) {
obj.addEventListener( type, fn, false );
} else if (obj.attachEvent) {
obj["e"+type+fn] = fn;
obj[type+fn] = function() { obj"e"+type+fn; }
obj.attachEvent( "on"+type, obj[type+fn] );
}
}
function StopElementFromOverKlicking(id) {
addEvent(document.getElementById(id),"click", stopEvent, false);
}
function load() {
StopElementFromOverKlicking('link1');
StopElementFromOverKlicking('link2');
}
</script>
</head>
<body onload="load();">
<div onclick='location.href="http://xyz.de"' style='background:red;width:400px;height:400px;'>
<a id='link1' href='http://abc.de' >gleiches fenster</a><br>
<a id='link2' href='http://abc.de' target='_blank' >neues fenster</a><br>
</div>
</body>
</html>