Ute: void(0) oder #

<a href="javascript:void(0);" onclick=...
 oder
<a href="#" onclick=...

Wo liegen die Unterschiede und was ist "besser"?

Ute

  1. Hello,

    <a href="javascript:void(0);" onclick=...
    <a href="#" onclick=...
    Wo liegen die Unterschiede und was ist "besser"?

    besser ist IMHO keines, beide sind schlecht. Zum Unterschied:
    Variante 1 gaukelt dem Browser vor ein Protokoll namens javascript zu verwenden (das nicht existiert, von den meisten Browsern aber als Hinweis "jetzt kommt JavaScript" akzeptiert wird) und dort 0 und nichtiges auszuführen.
    Variante 2 sagt dem Browser "das hier ist ein Link der auf einen Anker "" auf der aktuellen Seite verweist - da dieser Anker höchstwahrscheinlich nicht explizit definiert ist, springt die Anzeige an den Seitenanfang.

    Warum ist beides schlecht? Es setzt voraus, dass mittels JavaScript eine wahre Linkfunktionalität hergestellt wird, meist ein Popup o.ä. - die schönere Alternative hierfür wäre etwa:
    <a href="meinePopupSeite.html" onclick="open("meinePopupSeite.html" "neuesfenster", ""); return false;">
    Durch return false wird dafür gesorgt, dass der href des Ankers nicht mehr zum Zuge kommt, sofern der onclick-Eventhandler tätig wird. Ist allerdings JavaScript aus oder nicht verfügbar, so greift ganz normal der href und der Benutzer sieht die gewünschte Seite im aktuellen Fenster.

    MfG
    Rouven

    --
    -------------------
    Vegetarier essen meinem Essen das Essen weg.
  2. Yerf!

    <a href="javascript:void(0);" onclick=...
    oder
    <a href="#" onclick=...

    Wo liegen die Unterschiede

    Das erste macht "nichts" und das 2. springt an den Anfang der aktuellen Seite.

    und was ist "besser"?

    Eine gültige URL als href angeben und im onclick-Handler das Default-Verhalten des Links mittels return false; unterbinden. (Damit funktioniert der Link auch bei deaktiviertem JS.)

    Gruß,

    Harlequin

  3. Hello out there!

    <a href="javascript:void(0);" onclick=...
    oder
    <a href="#" onclick=...

    Wo liegen die Unterschiede

    Bei 'href="#"' springen Browser an den Zeilenanfang.

    und was ist "besser"?

    Wenn nicht an den Zeilenanfang gesprungen werden soll, erstes. Sinnlos ist es allemal. Wozu ein Script aufrufen, dass nichts tut?

    Wenn nichts verlinkt werden soll, ist das 'href'-Attribut fehl am Platze.

    Wahrscheinlich soll aber doch was verlinkt werden, nämlich die Ressource, die Nutzer und andere Agenten ohne JavaScript zu sehen bekommen. [DIALOG-ROBOT]

    See ya up the road,
    Gunnar

    --
    „Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)