Axel Richter: Einen Link definieren

Beitrag lesen

Hallo,

Nein, das Attribut href bringen HTMLAnchorElemente von sich aus mit.

Daran scheinen sich die diversen Browser aber nicht zu halten:

doch ;-)

<a name="meineSprungmarke">Hallo</a>


> wird nicht mit der defaultmäßig üblichen Unterstreichung und der Hand beim Drüberfahren als Link ausgezeichnet, und das ist ja wohl auch gut so.  

Ja, weil das Attribut href keinen Inhalt hat.  
  
Vergleiche die Ausgaben in  
  
<a name="meineSprungmarke" onclick="alert(this.href);alert(this.blah);">Hallo</a>  
  
this.href = [leer]  
this.blah = undefined  
  

> Bei Firefox 1.5.0.6  reicht schon das Setzen des href-Attributs ohne Wertzuweisung, um dieses Erscheinungsbild hervorzurufen.  
> ~~~html
  

> <a href >Hallo</a>  
> 

Offensichtlich setzt er dann href="". Das ist nicht korrekt, allerdings ist auch die Notation <a href >Hallo</a> nicht korrekt, so dass man nicht von einem FF Bug sprechen kann.

Bei IE 6 und Opera 9 bedarf es dazu dann doch sogar auch noch der Zuweisung eines Wertes, und sei es auch nur eine leere Zeichenkette.

<a href="" >Hallo</a>

Richtig. Aber was hat das damit zu tun, ob die Eigenschaft href standardmäßig für A-Elemente vorhanden ist. Vorhanden sein heißt doch nicht automatisch auch einen Inhalt haben. HTMLAnchorElemente haben per default die Eigenschaft href. Sie muss deshab nicht mit createAttribute usw. erzeugt werden, sondern ihr kann sofort mit [HTMLAnchorElement].href=[DOMString] ein Wert zugewiesen werden.  
  
So kannst Du austesten, welche Eigenschaften ein Element per default hat:  
  
~~~javascript
  
var myA = document.createElement("A");  
for (e in myA) document.write(e + "<br>");  

viele Grüße

Axel