Seite öffnen und Anchor anspringen per JS
Guido
- javascript
Moin,
ich breche mir gerade die Finger dabei meine Navigationsleiste zu dynamisieren. Folgende Situation:
Ich habe in Frame 1 eine Liste mit Links, die alle auf Anchors in einem Dokument verweisen sollen, das in Frame 2 geladen wurde. So weit kein Problem. In Frame 2 können aber n-verschiedene Dokumente geladen werden, die alle identische Anchors beinhalten. Ich möchte also die Links so dynamisieren, dass er mir immer im momentan geladenen Dokument in Frame 2 an den jeweiligen Achor springt, egal welches Dokument geladen wurde.
Meine Ideen gingen bisher in diese Richtung:
parent.textframe.location.href = parent.textframe.document.URL + "#Unterlagen"
Das Ergebnis ist natürlich gleich 0, sonst würde ich hier nicht posten. Habe das Gefühl, dass ich zu kompliziert denke, finde aber nicht den richtigen Dreh.
Für Hilfe wäre ich echt dankbar.
Hallo Guido.
Ich habe in Frame 1 eine Liste mit Links, die alle auf Anchors in einem Dokument verweisen sollen, das in Frame 2 geladen wurde. So weit kein Problem. In Frame 2 können aber n-verschiedene Dokumente geladen werden, die alle identische Anchors beinhalten. Ich möchte also die Links so dynamisieren, dass er mir immer im momentan geladenen Dokument in Frame 2 an den jeweiligen Achor springt, egal welches Dokument geladen wurde.
Warum verlinkst du nicht einfach ohne Dokumentname? Also z.B. so:
<a href="#anker1" target="hauptframe">Link</a>
Wenn es umbedingt mit Dokumentname sein muss ginge das so:
parent.textframe.location.href = parent.textframe.location.href + "#Unterlagen"
Man liest sich, H2O
Hallo Guido.
Ich habe in Frame 1 eine Liste mit Links, die alle auf Anchors in einem Dokument verweisen sollen, das in Frame 2 geladen wurde. So weit kein Problem. In Frame 2 können aber n-verschiedene Dokumente geladen werden, die alle identische Anchors beinhalten. Ich möchte also die Links so dynamisieren, dass er mir immer im momentan geladenen Dokument in Frame 2 an den jeweiligen Achor springt, egal welches Dokument geladen wurde.
Warum verlinkst du nicht einfach ohne Dokumentname? Also z.B. so:
<a href="#anker1" target="hauptframe">Link</a>Wenn es umbedingt mit Dokumentname sein muss ginge das so:
parent.textframe.location.href = parent.textframe.location.href + "#Unterlagen"Man liest sich, H2O
Moin,
das hatte ich schon versucht. Bei Version 1 lädt er dann eine Blanko-Seite auf der nur #Unterlagen steht. Und bei Variante 2 springt er mir im textframe an die richtige Stellen, ersetzt mir aber den Navigationsframe durch eine leere Seite, auf der dann das Ergebnis von parent.textframe.location.href + '#Unterlagen'" steht, also der komplette Dateipfad + Anchor. Und ich versteh nicht wieso, da ich immer explizit den textframe angesprochen habe. Kann ich per JS einen Anchor direkt anspringen?
hi,
Kann ich per JS einen Anchor direkt anspringen?
gruß,
wahsaga
hi,
Kann ich per JS einen Anchor direkt anspringen?
gruß,
wahsaga
Vielleicht war ich etwas mißverständlich: Ich möchte nicht den Namen des Anchors ausgeben. Ich möchte ihn innerhalb des Dokuments anspringen. Ich bin aber gerade ein Stück weiter gekommen. Ich habe anstatt im <a>-Tag das ganze mal in einem onClick-Event des <p>-Tags gemacht und schon gehts. Jetzt ist nur der Cursor beim klicken kein Pfeil mehr sondern eine Einfügemarke. Das kann doch nicht der Weisheit letzter Schluß sein.
Hi!
Vielleicht war ich etwas mißverständlich: Ich möchte nicht den Namen des Anchors ausgeben. Ich möchte ihn innerhalb des Dokuments anspringen.
und was gefällt dir an location.hash nicht? Hast du dir wirklich angeschaut, was diese Funktion macht?
Jetzt ist nur der Cursor beim klicken kein Pfeil mehr sondern eine Einfügemarke.
SelfHTML-Suche: CSS, cursor
Gruß, rob
Hi!
Vielleicht war ich etwas mißverständlich: Ich möchte nicht den Namen des Anchors ausgeben. Ich möchte ihn innerhalb des Dokuments anspringen.
und was gefällt dir an location.hash nicht? Hast du dir wirklich angeschaut, was diese Funktion macht?Jetzt ist nur der Cursor beim klicken kein Pfeil mehr sondern eine Einfügemarke.
SelfHTML-Suche: CSS, cursorGruß, rob
Also gemäß der Beschreibung speichert location.hash den Ankernamen. Da dieser aber nicht variabel ist und von mir eh fix vorgegeben wird sehe ich darin nicht so den Sinn für meine Lösung. Oder kann ich über location.hash diesen Anker auch anspringen oder besser: adressieren? Wenn ja stand davon nichts im Text.
Gruß,
Guido
Hallo Guido
Also gemäß der Beschreibung speichert location.hash den Ankernamen. ... Oder kann ich über location.hash diesen Anker auch anspringen oder besser: adressieren? Wenn ja stand davon nichts im Text.
Hast du den Text gelesen?
Dort steht: "Wenn Sie diese Angabe ändern, bewirken Sie einen Verweis innerhalb der Datei zu dem angegebenen Anker."
Auf Wiederlesen
Detlef
Hi!
Vielleicht war ich etwas mißverständlich: Ich möchte nicht den Namen des Anchors ausgeben. Ich möchte ihn innerhalb des Dokuments anspringen.
und was gefällt dir an location.hash nicht? Hast du dir wirklich angeschaut, was diese Funktion macht?Jetzt ist nur der Cursor beim klicken kein Pfeil mehr sondern eine Einfügemarke.
SelfHTML-Suche: CSS, cursorGruß, rob
"Wenn Sie diese Angabe ändern, bewirken Sie einen Verweis innerhalb der Datei zu dem angegebenen Anker. Auch dabei müssen Sie das Gatterzeichen vor dem Ankernamen hinzufügen."
Meinst Du das? Wenn ich parent.textframe.location.hash = "#Unterlagen" zuweise passiert nix. Ich änder doch nur den Inhalt der hash-Eigenschaft.
Gruß,
Guido
hi,
"Wenn Sie diese Angabe ändern, bewirken Sie einen Verweis innerhalb der Datei zu dem angegebenen Anker. Auch dabei müssen Sie das Gatterzeichen vor dem Ankernamen hinzufügen."
Meinst Du das? Wenn ich parent.textframe.location.hash = "#Unterlagen" zuweise passiert nix.
Dann machst du wohl noch irgendetwas falsch.
gruß,
wahsaga
hi,
"Wenn Sie diese Angabe ändern, bewirken Sie einen Verweis innerhalb der Datei zu dem angegebenen Anker. Auch dabei müssen Sie das Gatterzeichen vor dem Ankernamen hinzufügen."
Meinst Du das? Wenn ich parent.textframe.location.hash = "#Unterlagen" zuweise passiert nix.
Dann machst du wohl noch irgendetwas falsch.
gruß,
wahsaga
ARGHHHH!!!!
Mea Culpa! Man sollte nicht gleichzeitig mit seinem Chef telefonieren und Code hacken. Ich habe vergessen den Script-Tag zu schließen, dann kann auch nichts passieren. Kaum ist der Tag zu springt er von Anker zu Anker, dass es eine wahre Freude ist.
Sorry, habe in der Tat noch einen Fehler drinnen gehabt. Nu isser wech und es schnurrt. Jetzt mach ich Feierabend. Genug für heute. Nochmal tausend Dank an die drei Helfer.
Gruß,
Guido
hi,
Kann ich per JS einen Anchor direkt anspringen?
gruß,
wahsagaVielleicht war ich etwas mißverständlich: Ich möchte nicht den Namen des Anchors ausgeben. Ich möchte ihn innerhalb des Dokuments anspringen. Ich bin aber gerade ein Stück weiter gekommen. Ich habe anstatt im <a>-Tag das ganze mal in einem onClick-Event des <p>-Tags gemacht und schon gehts. Jetzt ist nur der Cursor beim klicken kein Pfeil mehr sondern eine Einfügemarke. Das kann doch nicht der Weisheit letzter Schluß sein.
So, ist nur ein Workaround, macht aber das, was ich will:
<a href="javascript:;" onClick="javascript:parent.textframe.location.href = parent.textframe.location.href + '#Unterlagen'">Verfügbare Unterlagen</a>
Er verlinkt zum Anker und ich habe einen Zeiger über dem Link. Problem gelöst. Ist zwar nicht der Weg, den ich angedacht hatte, aber was solls. Danke für eure Denkanstöße.
Gruß,
Guido
hi,
Ich habe anstatt im <a>-Tag das ganze mal in einem onClick-Event des <p>-Tags gemacht und schon gehts.
Ja, das ist ja auch der bessere Weg, JS-Aufrufe einzubinden.
Wozu einen Link einfügen, wenn der gar keine verlinkende Aufgabe hat? Das wäre in der Tat Blödsinn.
Jetzt ist nur der Cursor beim klicken kein Pfeil mehr sondern eine Einfügemarke. Das kann doch nicht der Weisheit letzter Schluß sein.
Wenn deine Weisheit so schnell am Schluß ist, dann erweitere sie doch mal ein wenig: CSS kennt eine Eigenschaft cursor.
gruß,
wahsaga
Hallo,
das hatte ich schon versucht. Bei Version 1 lädt er dann eine Blanko-Seite auf der nur #Unterlagen steht. Und bei Variante 2 springt er mir im textframe an die richtige Stellen, ersetzt mir aber den Navigationsframe durch eine leere Seite......
Wieso lese ich die ganze Zeit raus, das er eigentlich nur mit target das korrekte Frame ansprechen muss; statt einen "Umweg" über JavaScript zu gehen? Habe ich irgendwas überlesen?
Mit freundlichem Gruß
Micha
hi,
parent.textframe.location.href = parent.textframe.document.URL + "#Unterlagen"
Das Ergebnis ist natürlich gleich 0,
Hast du dir denn mal angeschaut, was document.URL enthält, wenn im textframe bereits ein Anker angesprungen wurde ...?
sonst würde ich hier nicht posten.
Wer selbst bebuggt, braucht übrigens auch nicht so oft nachfragen.
gruß,
wahsaga
Wer selbst bebuggt, braucht übrigens auch nicht so oft nachfragen.
Genau, und deshalb beschäftige ich mich auch schon seit zwei Stunden mit dem Thema und komme nicht weiter. Aber vielleicht habe ich ja auch den Sinn dieses Forums nicht verstanden.
Übrigens steht in URL der gesamte Pfad der anzuspringenden Datei. Hab ich beim bebuggen rausgefunden. ;-)