Steffen: href="" vs onclick="window.location"

Beitrag lesen

Hi!

<a href="http://example.org">Link A</a>
<a href="javascript:test();">Link B</a>

Was passiert, wenn ich folgendes (jQuery)-Javascript über den HTML-Code laufen lasse?

$('a').click(function(){
document.location = $(this).attr('href');
});

Zwei Dinge, die mir heute aufgefallen sind:

  1. 'document.location' funktioniert bei mir zwar tadellos (auch im IE) ist scheinbar garnicht richtig.

  2. Die Funktion 'test()' wird zweimal aufgerufen, was bei näherer Betrachtung auch logisch ist.

Dazu stelle ich mir zwei Fragen:

  1. Was ist nun browserübergreifend richtig? window/document, mit .href oder nicht?

  2. Bei dem ersten Link dürfte der Request ja auch zweimal (kurz hintereinander) ausgeführt werden. Sollte das den IE zu Fall bringen?

Viele "einfache" Benutzer arbeiten auch im Webbrowser mit Doppelklick. Vielleicht spielt das auch eine Rolle.

Auf alle Fälle ist aber window.location (noch besser nur location) das Gute. Ob mit oder ohne "href" ist in diesem Fall egal. Der Browser interpretiert dann den ganzen Link. Ich bevorzuge es möglichst wenig unnützen Code zu schreiben und lasse das "href" immer weg. Aus Sicht von Typisierungen ist es falsch, da ich "location" Typ Object einen String zuweise.

Grüße

  • Steffen