Hallo,
- Wozu brauchst du überhaupt ein geschütztes Leerzeichen in dem Link, wenn du den Text sowieso neu setzt?
IE meckert, wenn das nicht da ist. Für ein
document.getElementById('bookmark').firstChild.nodeValue = 'AJAX';
muss vorher ein Leerzeichen da sein (steht auch in SELFHTML irgendwo, dass es ohne nicht geht).
Oder anders gefragt: Wieso erzeugst du nicht alles, was ohne JavaScript eh nicht funktioniert, ganz mit JavaScript?
Das Ganze ist ein neues Feature auf meiner WebSite, die sehr umfangreich ist und auch heterogen ;-)
Kochrezepte finden sich da genauso wie Webanwendungen zu Datumsberechnungen oder zu Kalkulationen von Subnetzen.
Mit meinem seit heute morgen eingebautem Feature kann der Besucher eine von mir bereitgestellte Seite mit Bookmarks füllen, sozusagen ein eigenes Menu zusammenstellen.
Die Choice ist in einem Cookie abgelegt. Zum Einbau eines Links like "Diese Datei in das eigene Menu" verwende ich AJAX. Dahinter liegt ein serverseitiges Script, was den Cookie ausliest, ist die Datei schon im Bookmark, wird der Link nicht mehr gezeigt. Dieser Link (sichtbar oder nicht) ist also auf allen WebDokumenten eingebaut, die für ein benutzerbasiertes Menu zur Verfügung stehen.
Der Parameter "Bookmark setzen" zeigt ebenfalls auf das serverseitige Script, was einmal den Cookie aktualisiert und dann wieder auf den Referer umleitet.
Die Darstellung der Bookmarkseite übernimmt ein reines CGI-Script, das liest den Cookie aus und listet die Links jeweils mit den Optionen [anzeigen] [löschen].
Hilfreich zur Darstellung der Bookmarkseite ist die Tabelle mit der Seitenaufrufstatistik, darin steht neben der URL auch der etwas aussagekräftigere Titel.
Alles zusammen ist also ein Mix von JavaScript, Ajax und CGI in PERL, wobei die Darstellung der Bookmarkseite mit MySQL-Anbindung ohnehin nicht mit JavaScript alleine gemacht werden kann.
Heute morgen war ich schonmal nahe dran, alles wieder in die Tonne zu treten, aber wenn ichs mir so anschaue, isses doch ganz gut geworden und meine Frau findets auch cool.
Viele Grüße,
Hotte