window.open / nur Textabsatz im Fenster anzeigen (Frameset)
raaabe
- javascript
0 1UnitedPower0 raaabe
guten Tag zusammen,
ich habe ein Frameset "gebaut" in dem links eine Navigationspalte ist. In der Mitte sind drei waagerecht geteilte Fenster. Links befindet sich noch eine Spalte mit Stichwortverzeichniss. Über Links kann der Benutzer sich in der Mitte mit den drei Fenster die Ansichten der Informationen selber zusammenstellen, wie er möchte. Die Hauptseite ist eine html Datei mit mehreren Kapitel. Diese können problemlos separat angewählt werden. Und das klappt auch problemlos.
Mein Wunsch ist nun, das der Benutzer zusätzlich aus der Navi heraus Fenster öffnen kann, die eher die Funktion eines "Notizzettels" haben, in dem Textpasagen aus den einzelnen Kapitel angezeigt werden.
Meine "Konstrucktion" in der Navi sieht für jedes Kapitel so aus.
<a href="willk.htm#webseite" target="ftext"><font id="p20">
Aufbau & Anmerkungen zur Webseite</font></a><br>
<a href="willk.htm#webseite" target="foben"><font id="p16">oben</font></a>
<a href="willk.htm#webseite" target="funten"><font id="p16">unten</font></a>
<script type="text/javascript">
function Fenster10 (Adresse10) {
Fenster10 = window.open(Adresse10, "10",
"width=600,height=300,scrollbars=no,resizable=no"); Fenster10.focus();
}
</script>
<a href="willk.htm#webseite" onclick="Fenster10(this.href); return false">
<font id="p16"><br>Notizzettel</a></font>
<br><br>
Wobei "ftext" das mittlere (Haupt) Fenster ist und "foben" bzw. "funten" das obere bzw. untere Fenster darstellen.
In dieser Konstrucktion klappt es auch soweit. Nur bekomme ich keine Referenzierung zu meinen gewünschte Textpassagen hin. Ich habe versucht dies über "document.getElementById" zu lösen. Es will nicht klappen. Selbst wenn ich die Textpassage in ein div packe mit eindeutiger id.
Hat jemand eine Idee was ich hier verkehrt mache, bzw. wie ich "document.getElementById" richtig einbauen muss ?
Für eure Bemühungen schon mal mein Dank im vorraus.
mfG: raaabe
Hat jemand eine Idee was ich hier verkehrt mache, bzw. wie ich "document.getElementById" richtig einbauen muss ?
1. Ids müssen eindeutig sein, das sind sie bei dir nicht.
2. Jeder Frame beinhaltet ein eigenes Dokument. window.frameElement kann hier Abhilfe leisten.
Außerdem: Du missachtest die Verschachtelungsregeln für HTML und @font ist mittlerweile als obsolet eingestuft und sollte nicht mehr verwendet werden.
Hat jemand eine Idee was ich hier verkehrt mache, bzw. wie ich "document.getElementById" richtig einbauen muss ?
- Ids müssen eindeutig sein, das sind sie bei dir nicht.
- Jeder Frame beinhaltet ein eigenes Dokument. window.frameElement kann hier Abhilfe leisten.
Außerdem: Du missachtest die Verschachtelungsregeln für HTML und @font ist mittlerweile als obsolet eingestuft und sollte nicht mehr verwendet werden.
Hallo 1UnitedPower, und alle anderen,
erst einmal vielen Dank für Deine Antwort. Diese hat mich dazu gebracht, grudsätzlich die Problemstellung neu zu überdenken, da Dein Vorschlag mit "window.frameElement" mich nicht weiter brachte. Warum auch immer. Als Anfänger durchschaut man eben noch nicht alles.
Nun bin ich auf eine ganz andere Lösung gekommen, um User wieder dahin zu führen wohin Sie möchten. Der User legt sich selber seine "Notizzettel" an, indem er die Adresse seines Zieles in ein "Textarea" kopiert. Und so kann er über die Suchefunktion des Browser die Position mit Copy & Paste wiederfinden. Mir ist klar das dies nur Lokal funktioniert, worauf ich die User auch hinweise.
Dazu verwende ich folgenden Code:
<script type="text/javascript">
function setText () {
document.getElementById("Text").firstChild.nodeValue = document.
getElementById("Eingabe").value;
}
</script>
</head><body>
<form name="Formular" action="">
<font id="p20rot">Ihre Lesezeichen:<br>
<textarea style="width: 98%; height: 500px;font-size:14px"id="Eingabe" rows="5" cols="16"
onkeyup="setText()"></textarea>
</form>
Im Firefox (13) klappt das wunderbar, nur im IE(8) funktioniert das Ausgabefenster nicht. Andere Browser habe ich noch nicht getestet. Und nun stehe ich da, wie der Ochs im Hühnerstall und bekomme das Problem nicht gelöst.
Was muß ich da ändern? Wenn ich das richtig verstehe so sollte "onkeyup" laut selfHTML auch im IE ab Version 4 funktionieren.
Deine anderen Einwände werde ich auch noch bearbeiten.
Für jede Hilfe dankbar,
mfG raaabe