Hallo Stephan,
Ich möchte aber, dass der zuvor ausgewählte Button (in diesem Fall ein div),
den "grünen" Status behält.
Mir ist zwar Sinn und Zweck dieses Features immer noch unverständlich,
gerade bei der Kompliziertheit einer Lösung für dieses künstliche Problem,
aber wenn Du unbedingt willst...
Überlegen wir mal.
Der Browser merkt sich nicht (weil es ja auch nicht erforderlich ist),
welches Element den Fokus hat, wenn der das Dokument nochmal lädt. Das
heißt Du mußt den Umweg über Javascript gehen. Zu den Nachteilen von
Javascript sage ich jetzt mal nichts, es ist hier ja nichts, daß bei
Nichtvorhandensein die Benutzung der Seite beeinflußt. Du mußt also ein
Javascript haben, daß weiß welches Element gerade selektiert ist. Da es
anscheinend keinen schnellen Verweis auf sowas wie document.focus gibt, muß
man das überwachen. Zwei mögliche Wege:
- Den Eventhandler onFocus in jeden zu überwachenden Link einfügen
der dann an ein Javascript eine linkspezifische und dokumentweit
einzigartige ID weitermeldet.
(http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onfocus) - Events überwachen. Das geht irgendwie mit window.captureEvents(Event.FOCUS);
(http://selfhtml.teamone.de/javascript/objekte/window.htm#capture_events)
in SELFHTML steht aber, daß das nur in Netscape 4.0 funktioniert.
Also indiskutabel.
Jetzt hast Du die ID des Elementes mit dem Fokus. Das muß Du jetzt irgendwie
an an das neugeladene Dokument kriegen. Wieder zwei Wege:
-
Über Javascript. Es gibt extrem umständliche Wege, Werte, wie eben
Deine ID an das nächste geladene Dokument weiterzugeben. Diese Links
sollten Dir weiterhelfen:
http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe/index.htm
http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe-2/index.htm
Du mußt also im neugeladenen Dokument auch ein Javascript haben, daß
die ID durch die Wertübergabe wieder ausliest, das Element über diese ID
anspricht und ihm entweder über CSS Zuweisungen die entsprechenden
Eigenschaften zuweist, oder aber ihm mittels focus() den Fokus zuweist.
(http://selfhtml.teamone.de/javascript/objekte/htmlelemente.htm#a) -
Serverseitig. Dazu muß Du auf dem Server ein Skript haben, daß die
Seite ausgibt und auch wieder irgendwie die ID bekommt (Als Parameter an
die URL anhängen bietet sich an) und daß dann das zur ID passenden
Element im Dokument hervorhebt. Entweder daß es dem Element eine
CSS-Klasse definiert, welche dieselben Eigenschaften wie :active hat,
oder, daß diese ID in ein Javascript im Dokument reingeschrieben wird,
das dann beim Laden des Dokuments über einen Eventhandler aufgerufen
wird, der dann dieses Javascript aufruft, das mittels focus() dem
entsprechenden Element den Fokus verleiht.
Es ist also schrecklich umständlich und verläßt sich zudem auf Javascript.
Für mich wäre die Kosten-Nutz-Rechnung nicht hoch genug, um das zu
implementieren. Aber vielleicht hast Du den Idealismus? ;o)
Ich hoffe, der verregnete Döner hat gemundet. :-)
Lecker. So lecker, daß ich für mich künstlich herbeigezauberte Probleme
löse. ;o)
- Tim
<img src="http://validator.w3.org/images/v15445" border="0" alt="">