Moin!
Vorweg kurz die Auflösung, warum es bei meinem Projekt mit "a[i].onclick= doLink;" nicht funktioniert: Ich serialisiere meine konvertierte Datei und weise sie per innerHTML den divs zu. Ein onclick Handler, der so gesetzt wurde, erscheint jedoch nicht im serialisierten Code.
Jetzt lang den Hintergrund und um die offenen Fragen von Struppi und wahsaga zu beantworten.
Ich bin im moment dabei die Online Hilfe einer Applikation zu überarbeiten. Die Hilfetexte und der Index werden/wurden von anderen erstellt die mit HTML (leidlich) umgehen können. Von daher mein Anspruch, href können die verwenden, onclick nicht.
Für diese Hilfe wurden bisher frames verwendet, was ich auf divs umgestellt habe. Es wurde bisher benötigt:
1. Eine HTML Datei für eine Liste der Anfangsbuchstaben der Stichworte.
2. Eine HTML Datei für jeden Anfangsbuchstaben
3. Eine HTML Datei für den vollständigen Index
4. Eine HTML Datei für jedes Stichwort.
1. und 2. habe ich gestrichen. Die generiere ich aus 3. mit JavaScript (zur Erinnerung: JS ist essentieller Bestandteil der Applikation. Ohne JS is nich)
Wenn das Hilfefenster geladen wird, lade ich den Index per XMLHttpRequest nach. Anschließend bearbeite ich das Ergebnis indem jeder <a> einen onclick Handler erhält. Zudem wird die Liste der Anfangsbuchstaben (das 1. oben) generiert.
Anschließend muß ich den Inhalt des <body> dieser Datei nehmen und zwischenspeichern. Außerdem wird der Inhalt per innerHTML in den div der Stichworte geschrieben. Durch passendes CSS sind zunächst alle Stichworte ausgeblendet.
Wenn nun der Endbenutzer auf einen der Anfangsbuchstaben klickt, soll ihm eine Liste der Stichworte mit diesem Buchstaben angezeigt werden.
Dies geschieht dadurch, daß ich in dem div der Stichworte dem div, das zu diesem Buchstaben gehört, eine Klasse verpasse, die ein "display:block" enthält. Damit erscheinen dann die Stichworte.
Hinter jedem der Stichworte liegt dann der bearbeitete Link und der Klick darauf soll dann die zugehörige Datei in den div laden, der für die Hilfetexte zuständig ist.
Das klappt jetzt alles so weit, allerdings nur, wenn ich mit setAttribute( 'onclick' ...) arbeite, da nur so auch wieder HTML generiert wird.
Ich hatte mich schon mal daran versucht, mit DOM Manipulationen das ganze zu bewerkstelligen, bin aber kläglich gescheitert. Das würde jetzt aber zu weit führen.
Danke für Eure Aufmerksamkeit ;-) Und ich hoffe, ich habe es einigermaßen verständlich machen können.
-- Skeeve