Rolf b: href = Link aus jsFunktion ReturnWert

Beitrag lesen

In der Spec steht:

The href attribute on a hyperlink element must have a value that is a URI (or IRI). This URI is the destination resource of the hyperlink.

javascript:blabla(); kann man vermutlich als URI zum Schema javascript auffassen, deshalb ist dein Vorgehen Spec-konform.

Allerdings definierst Du auf diese Weise, dass der Link zur JavaScript Funktion führt. Und deshalb wird die JavaScript-Funktion ausgeführt, wenn Du auf den Link klickst. Dass ihre Rückgabe zu verarbeiten ist, davon steht nichts in der Spec. Deshalb musst Du die Verlinkung selbst durchführen.

Der naive Ansatz dazu wäre document.location="...", das missachtet allerdings Attribute des Anchor-Elements, die das Navigationsverhalten beeinflussen (z.B. target="_blank"). Das müsstest Du alles nachbauen - es sei denn es gibt einen mir unbekannten Trick, das eleganter zu lösen.

Aber ich würde dieses Vorgehen vermeiden wollen. Du kannst auch per JavaScript den Wert des Anchor-Tags direkt setzen, so dass es den gewünschten Wert enthält, und dann dem Browser das korrekte Handling des Klicks auf den Link überlassen. Das ist natürlich etwas umständlicher, vor allem dann, wenn es viele mögliche Auslöser für einen Update des href Attributs gibt.

Rolf