Warum auch nicht, du lässt schließlich eine JavaScript-Anweisung innerhalb des
href-Attributes ausführen.
Dann musst du als Konsequenz dessen auch mit einem Rückgabewert der Anweisung rechnen, welcher in deinem Fall in dem Wert bestünde, welchen du der Eigenschaft
display des Objektes zuordnest, welches du per
document.getElementById('irgendwas') referenzierst.
Mit diesem erzeugten Rückgabewert hast du bei Ausführen der Anweisung in etwa dann zwischenzeitlich folgendes Szenario:
PHP:
<a href="inline">Klick!</a>
Und was dann passiert ist ja klar, denn nachdem die JavaScript-Anweisung im String des
href-Attributes ausgeführt wurde, wird nun auch noch das Klicken des Links verfolgt, mit standardmäßiger Änderung des Dokuments zum
href-Attribut hin, es wird einfach das Dokument "inline" in's jeweilige Fenster geladen.
Willst du sowas nicht erzielen, dann musst du entweder dafür sorgen, dass nicht ein solcher Rückgabewert an die Engine gelangt, oder aber die JavaScript-Anweisungen dort plazieren, wohin sie eigentlich gehören: in einen EventHandler.
Ersteres erzielst du mithilfe des Operators
void bzw. der Anweisung
void().
PHP:
<a href="javascript:void(document.getElementById('irgendwas').style.display='inline');">Klick!</a>
Hier wird nichts weiter gemacht, als dass kein Rückgabewert von der Anweisung innerhalb der Parenthesen erfolgt, sondern stattdessen das Schlüsselwort
undefined an die Engine zurückgegeben wird.
Mit ebendiesem
undefined als Wert für das
href-Attribut erfolgt aber kein Seitenwechsel, das kannst du auch einfach selbst austesten:
PHP:
<a href="javascript:undefined">Link</a>
Zweitere Variante klappte wie folgt:
PHP:
<a href="egal" onClick="document.getElementById('irgendwas').style.display='inline'; return false;">Klick!</a>
Damit wird im Prinzip zuerst die JavaScript-Anweisung im Handler ausgeführt und danach durch
return false das Standard-Laden des Dokumentes nach Klick auf Link, welches ja abhängig vom
href-Attribut ist, unterbunden, indem der Event des Dokument-Ladens gecancelt wird.
Reichlich komplexe Geschichte auf den ersten Blick, schätze ich, aber wenn es einmal verstanden wurde, dann können damit eine Menge solcher Fehlerchen vermieden werden.
hth,
Geist