molily: position:fixed und Anker

Beitrag lesen

Meine Theorie zur Überprüfung, ob ein Link zu einem dokumeninternen Anker führt, ist folgendermaßen: Ein Link führt genau dann zu einem dokumentinternen Anker, wenn der Anker des Links gefüllt ist sowie die Zieladresse des Links ohne Anker und Adresse des aktuellen Dokuments ohne Anker übereinstimmen.

das würde doch dann heissen, dass <a href="#anker1"> nach deiner definition gar kein anker wäre, weil eben die zieladresse ohne anker _leer_ wäre? (oder setzt javascript beim auslesen des href-attributes automatisch den aktuellen dokumentnamen davor, falls dieser nicht angegeben ist?)

Ja, genau. [Linkelementobjekt].href beinhaltet bei einem Link mit href="#anker" die volle Adresse des gegenwärtigen Dokuments. Damit ist die Zieladresse des Links ohne Anker problemlos auslesbar.

http://home.t-online.de/home/dj5nu/fanhost/css-posfixed-javascript.html zeigt das auch: Link Nummer 13 und Link Nummer 24 sind dokumentinterne Links der Form <a href="#textlink">...</a>. Beide sollten den Event-Handler bekommen (sie werden rot eingefärbt, wenn es der Browser erlaubt). Rechts die Debugausgabe:

Vergebe an: 13/24
Linktext: #testlink
-- hyperlinks[i].href: http://home.t-online.de/home/dj5nu/fanhost/css-posfixed-javascript.html#testlink

Das ist die Eigenschaft href. Sie enthält die volle Adresse samt Anker (im Falle von Opera 7).

-- hyperlinks[i].hash: #testlink

Das ist die Eigenschaft hash, sie enthält nur den Anker.

-- linkurl: http://home.t-online.de/home/dj5nu/fanhost/css-posfixed-javascript.html
-- documenturl: http://home.t-online.de/home/dj5nu/fanhost/css-posfixed-javascript.html

linkurl ist die Zieladresse des Links ohne Anker,
documenturl die Adresse des aktuellen Dokuments ohne Anker.
Beide stimmen überein und hash ist gefüllt, damit ist der Link ein dokumentinterner und der Event-Handler wird vergeben.

In der Tabelle unter dem »Testlink« wird noch einmal veranschaulicht, wie die Eigenschaften des Linkelementobjekts aussehen:
testlink          http://home.t-online.de/home/dj5nu/fanhost/css-posfixed-javascript.html#testlink
testlink.href     http://home.t-online.de/home/dj5nu/fanhost/css-posfixed-javascript.html#testlink
Beide liefern die volle URL (im Falle von Opera 7, Netscape 4, Gecko und MSIE mit Anker, im Falle von Opera 5-6 ohne).

Ich habe übrigens die neue Version des Artikels hochgeladen, unter http://home.t-online.de/home/dj5nu/css-position-fixed.html#javascript-autoinit (etwas herunterscrollen) ist eine Tabelle, die eine Übersicht bietet, was die Browser als href-Eigenschaft bei Links zu Ankern zurückgeben.