|
FAQ de.comp.lang.javascript |
|
Bitte verwenden Sie als Einstiegsadresse in diese FAQ die
Homepage der Newsgroup de.comp.lang.javascript.
Der Aufenthaltsort dieser Seiten hier kann sich ohne Vorwarnung ändern.
Ein Fenster wird mit
neues_Fenster = window.open()
geöffnet, in dieses Fenster jedoch keine
Datei geladen, sondern der Inhalt dynamisch (OnTheFly) erzeugt.
Gesucht wird eine Möglichkeit, einen darin enthaltenen Anker anzuspringen.
In einer eigenen Datei würde man dafür Folgendes schreiben:
<a href="#unten">Link nach weiter unten</A> ... <a name="unten"></A>
Der gleiche HTML-Code - dynamisch im neuen Fenster über document.write() erzeugt - liefert nicht das gewünschte Ergebnis. Beim Anklicken des Links erscheint im Gegenteil ein Directoy-Listing.
Warum?
"#unten" ist nur eine Kurzform für "URL_aktuelle_Datei#unten".
Der Browser sucht bei jedem Link zunächst die Datei und dann innerhalb der Datei
bei Bedarf den Anker.
Ohne explizite Angabe eines URLs heißt das, der Anker befindet sich
in der gerade aktuellen Datei.
Die Datei gibt es in dem Fall aber physisch nicht (OnTheFly), welchen URL hat sie?
Das ist also der Ansatzpunkt: Es gilt, den URL zu ermitteln.
Die Lösung liefert
fly_URL = neues_Fenster.document.URL;
Damit generiert folgende Anweisung einen gültigen Link:
neues_Fenster.document.write('<A HREF="',fly_URL,'#unten"></A>');
Nur mal zum Veranschaulichen kann man folgende Anweisung einbauen:
neues_Fenster.document.write(fly_URL)
Dann wird etwa sowas erscheinen:
wysiwyg://91/file:/C|/verzeichnis/datei.htm (bei lokalem Test)
- ein zur Laufzeit generierter URL. Die "91" ist nur ein
willkürliches Beipiel, die wird (weil zur Laufzeit generiert) u.U. sogar von Aufruf
zu Aufruf variieren.
Beispiel:
Mit Hilfe der Funktion fenster() wird solch ein neues Fenster geöffnet.
Der generierte HTML-Code dafür
enthält einen Anker "unten" und einen Link darauf.
Der generierte URL wird ebenfalls ausgegeben.
function fenster() { Para = 'scrollbars=yes,resizable=yes,WIDTH=400,HEIGHT=150'; neues_Fenster = window.open ('', 'fenster',Para); neues_Fenster.document.clear(); neues_Fenster.document.open(); fly_URL = neues_Fenster.document.URL; neues_Fenster.document.write('<HTML><HEAD><TITLE>'); neues_Fenster.document.write('OnTheFly</TITLE></HEAD>'); neues_Fenster.document.write('<BODY>'); neues_Fenster.document.write('<A HREF="',fly_URL,'#unten">'); neues_Fenster.document.write('nach unten</A>'); ... neues_Fenster.document.write('<A NAME="unten">'); neues_Fenster.document.write('hier ist unten</A>'); neues_Fenster.document.write('<BR>'); neues_Fenster.document.write('mein URL:',fly_URL); neues_Fenster.document.write('</BODY></HTML>'); neues_Fenster.document.close(); }
Diese Seite ist Teil der de.comp.lang.javascript FAQ. Die Einstiegsadresse lautet http://www.dcljs.de/.
Dieser Text wurde erstellt von Christine Kühnel (©).
© S. Mintert, Ch. Kühnel
______ letzte Änderung: 01.01.2002 ______