seite ins frameset zwingen, trotzdem zurück möglich
m.mietke
- javascript
Hallo,
in einem der anschaulichen knowware- Hefte habe ich als Anfänger folgendes Javasript gefunden, das eine einzelne von einer Suchmaschine gefundene Seite zurück in ihr frameset zwingt, so daß der Besucher auch die Navigationsbuttons sieht. Klappt gut.
Das Problem ist nur, daß der Besucher dann, wenn er zurück zur Suchmaschine will, durch einfaches Betätigen des Zurück- buttons nicht mehr dorthin kommt. Könnte man das script dahingehend verändern, daß dies doch möglich ist? Schließlich will ich meine Besucher nicht verärgern.
(Bisher ist ein Zurückkommen nur möglich, wenn man auf den kleinen Pfeil neben der Zurück- Schaltfläche klickt und dann dort aussucht, wohin man zurück will.)
Hier das script:
<script language="JavaScript" type="text/javascript">
<!--
if (parent.location.href==location.href) {
parent.location.href="../frameset.htm";
}
//-->
</script>
Vielen Dank für Hilfe,
Gruß von
m.mietke
Hi,
in einem der anschaulichen knowware- Hefte habe ich als Anfänger folgendes Javasript gefunden, das eine einzelne von einer Suchmaschine gefundene Seite zurück in ihr frameset zwingt, so daß der Besucher auch die Navigationsbuttons sieht. Klappt gut.
wirklich? Mir sieht das eher so aus, als wenn der Besucher die Startseite und nicht die gesuchte Seite im Frameset zu sehen bekommt. _Dadurch_ verärgerst du Besucher.
Das Problem ist nur, daß der Besucher dann, wenn er zurück zur Suchmaschine will, durch einfaches Betätigen des Zurück- buttons nicht mehr dorthin kommt.
Mich würde das zwar nicht stören, da ich Suchmaschinenergebnisse im neuen Tab öffne, aber was Du suchst ist http://de.selfhtml.org/javascript/objekte/location.htm#replace.
Und falls ich mit meiner ersten Vermutung richtig liege, solltest Du Dir mal http://www.1ngo.de/web/framesets.html ansehen.
freundliche Grüße
Ingo
Hi,
Mir sieht das eher so aus, als wenn der Besucher die Startseite und nicht die gesuchte Seite im Frameset zu sehen bekommt. _Dadurch_ verärgerst du Besucher.
Ja, stimmt, es wird die Startseite geladen, aber ich dachte, das sei nicht so tragisch, sich dann weiter durchzuklicken. Aber wahrscheinlich hast Du recht.
was Du suchst ist http://de.selfhtml.org/javascript/objekte/location.htm#replace.
Habe ich mir angeschaut, werde aber nicht ganz schlau daraus, wie ich das bei meinem script einbauen soll (wenn ich jetzt erstmal das Springen auf die Sartseite akzeptiere).
Könntest Du mir vielleicht netterweise das geänderte script aufzeigen?
Und falls ich mit meiner ersten Vermutung richtig liege, solltest Du Dir mal http://www.1ngo.de/web/framesets.html ansehen.
Habe ich auch angeschaut - scheint ja ein ganz schöner Aufwand zu sein und auch noch browserabhängig variiert werden zu müssen. Schreckt mich etwas ab, muß ich gestehen.
Vielen Dank zunächst,
m.mietke
Hi,
Und falls ich mit meiner ersten Vermutung richtig liege, solltest Du Dir mal http://www.1ngo.de/web/framesets.html ansehen.
Habe ich auch angeschaut - scheint ja ein ganz schöner Aufwand zu sein und auch noch browserabhängig variiert werden zu müssen.
Die Broserweiche und den zweiten Teil für "richtige" Browser kannst Du auch weglassen - dann würden halt alle Browser die etwas unscönere Methode nehmen.
freundliche Grüße
Ingo
Hi,
in einem der anschaulichen knowware- Hefte habe ich als Anfänger folgendes Javasript gefunden, das eine einzelne von einer Suchmaschine gefundene Seite zurück in ihr frameset zwingt, so daß der Besucher auch die Navigationsbuttons sieht. Klappt gut.
nö, ist Murks.
Sorry, das klingt sehr drastisch, aber ...
if (parent.location.href==location.href) {
parent.location.href="../frameset.htm";
}
Damit würde ich immer auf der Seite landen, die in deinem Frameset als Haupt- oder Einstiegsseite festgelegt ist. Wenn aber die Suchmaschine einen interessanten Artikel über Karnickelzucht in Argentinien gefunden hat, der mich brennend interessiert, dann möchte ich nicht stattdessen auf die Seite mit "Hallo, ich bin der Jochen" oder so zurückgeschubst werden.
Das Problem ist nur, daß der Besucher dann, wenn er zurück zur Suchmaschine will, durch einfaches Betätigen des Zurück- buttons nicht mehr dorthin kommt. Könnte man das script dahingehend verändern, daß dies doch möglich ist? Schließlich will ich meine Besucher nicht verärgern.
Das tust du meines Erachtens schon dadurch, dass du sie "überraschend" von der eigentlich richtigen gefundenen Seite weglotst. Aber ja, wenn du von der Grundidee trotzdem nicht abrücken willst, verwende location.replace() anstatt der Zuweisung an location.href. Dann führt der Zurück-Button danach tatsächlich auf die Seite zurück, bevor der Besucher dein Webangebot erreicht hat.
By the way, wenn ich eine Fundstelle aus einer Suchmaschine aufrufe, dann tu ich das grundsätzlich in einem neuen Fenster. Dann kann mir dieser Zurück-Hickhack egal sein (das ist jetzt eher ein allgemeiner Ratschlag an die Internet-Nutzer als eine Lösung für dich).
So long,
Martin
Aber ja, wenn du von der Grundidee trotzdem nicht abrücken willst, verwende location.replace() anstatt der Zuweisung an location.href.
Könntest Du mir vielleicht das geänderte script aufschreiben, wie es dann aussehen müßte?
Vielen Dank und Gruß,
m.mietke
Hallo m.mietke
in einem der anschaulichen knowware- Hefte habe ich als Anfänger folgendes Javasript gefunden, das eine einzelne von einer Suchmaschine gefundene Seite zurück in ihr frameset zwingt, so daß der Besucher auch die Navigationsbuttons sieht. Klappt gut.
Hier mal ein paar meiner Postings aus dem Archiv zu diesem Thema:
Frames nachladen
Suchmaschinen und Framefenster
suchmaschinen und frames
suchmaschinen und frames
Einträge in Suchmaschine - Falsche Darstellung beim anklicken
Auf Wiederlesen
Detlef
Hallo Detlef,
Danke für die links - habe sie alle gelesen und werde allmählich auch diesen Nachladescripts gegenüber skeptisch. Man kommt ja vom Hundertsten ins Tausendste.
Interessant finde ich Deine Idee, einen (von mir eigentlich als unschön empfundenen) homelink auf jeder Inhaltsseite per javascript zu verstecken. Dann sieht ihn nur der, der ihn auch brauchen kann, also der, der via Suchmaschine auf die Seite ohne frames gelangt ist. Das scheint mir wirklich gut, so lange ich noch bei den frames überhaupt bleibe.
Könntest Du mir als Anfänger das script zum verstecken eines links verraten? Wenn die Seite ohne zugehöriges frameset geladen wird, soll also der link sichtbar sein, ansonsten unsichtbar.
Vielen Dank und Gruß,
m.mietke
Hallo m.mietke
... Dann sieht ihn nur der, der ihn auch brauchen kann, also der, der via Suchmaschine auf die Seite ohne frames gelangt ist. Das scheint mir wirklich gut, so lange ich noch bei den frames überhaupt bleibe.
Eine einfache Möglichkeit, die auch vollständig ohne Javascript funktioniert, die du also auch selbst umsetzen könntest, bestände darin, den Homelink am Seitenanfang zu positionieren und einen Anker am Beginn des Inhalts zu setzen.
An deine internen Verweise hängst du dann den Ankernamen an. Damit werden die Seiten gleich beim Aufruf immer so weit gescrollt, dass der Homelink nicht sichtbar ist. Dieser kann dann allerdings ins Browserfenster gescrollt werden.
Das funktioniert auch, wenn beim Seitenbesucher Javascript deaktiviert ist oder aus anderen GRünden nicht zur Verfügung steht.
Eine weitere Möglichkeit besteht darin, den Homelink mit Javascript ins Dokument zu schreiben. Dabei musst du diesen allerdings noch einmal extra in einem noframe-Bereich notieren.
Das könnte dann so aussehen:
<script type="text/javascript">
[code lang=javascript] if(self.name!="Inhalt")
document.write('<a href="index.htm" target="_top">Zur Startseite<\/a>');
~~~</script>
<noscript>
<a href="index.htm" target="\_top">Zur Startseite</a>
</noscript>
[/code]
Eine weiter Möglichkeit wäre dann noch, ihn auszublenden, indem mittels Javascript seine display-Eigenschaft auf none gesetzt wird.
Auf Wiederlesen
Detlef
--
- Wissen ist gut
- Können ist besser
- aber das Beste und Interessanteste ist der Weg dahin!
Hallo Detlef,
Danke erstmal für die Vorschläge. Das mit der Textmarke ist auch nicht übel, aber dann bildet sich halt immer eine Bildlaufleiste, auch wenn sonst keine nötig wäre - ist also auch nicht richtig elegant.
Eine weitere Möglichkeit besteht darin, den Homelink mit Javascript ins Dokument zu schreiben. Dabei musst du diesen allerdings noch einmal extra in einem noframe-Bereich notieren.
Hm, das verstehe ich nicht ganz mit dem noframe- Bereich. Sowohl Navigationsfeld als auch Inhaltsfeld sind doch Teil des frames?
Ich habe trotzdem mal versuchsweise den angegebenen code in den Inhaltsframe gesetzt, aber ohne Erfolg: man sieht den link immer.
Das könnte dann so aussehen:
<script type="text/javascript">
[code lang=javascript] if(self.name!="Inhalt")
document.write('<a href="index.htm" target="_top">Zur Startseite</a>');
> <noscript>
> <a href="index.htm" target="\_top">Zur Startseite</a>
> </noscript>
> [/code]
>
> Eine weiter Möglichkeit wäre dann noch, ihn auszublenden, indem mittels Javascript seine display-Eigenschaft auf none gesetzt wird.
Ja, dieses Ausblenden ist ja gerade das, was ich suche.
Könntest Du mir noch genauer auf die Sprünge helfen, bitte?
Wenn die Seite 'den frame um sich hat', soll der link ausgeblendet sein, ansonsten sichtbar sein.
Besten Dank,
m.mietke
Hallo m.mietke
Hm, das verstehe ich nicht ganz mit dem noframe- Bereich. Sowohl Navigationsfeld als auch Inhaltsfeld sind doch Teil des frames?
Wenn Javascript aktiviert ist, wird der Link wenn nötig mittels Javascript in die Inhaltsseite geschrieben.
Im noframe-Bereich steht er nocheinmal, damit er bei deaktiviertem Javascript angezeigt wird.
Ich habe trotzdem mal versuchsweise den angegebenen code in den Inhaltsframe gesetzt, aber ohne Erfolg: man sieht den link immer.
Wie ist der Name deines Inhaltsframes?
Bei dem Scriptbeispiel nennt er sich "Inhalt".
Auf Wiederlesen
Detlef
Hallo Detlef,
jetzt geht's genau wie gewünscht!
Aus irgendeinem Grund mußte ich noch aus index.htm index.html machen, obwohl die Startseite index.htm heißt, aber das ist wohl ein Problemchen meines webspace- providers.
Wenn Javascript aktiviert ist, wird der Link wenn nötig mittels Javascript in die Inhaltsseite geschrieben.
Hier meintest Du wohl noSCRIPT Bereich (statt noFRAME Bereich), deswegen war ich etwas durcheinander gekommen.
Wie ist der Name deines Inhaltsframes?
Bei dem Scriptbeispiel nennt er sich "Inhalt".
Ich habe mal meinen entsprechenden Namen ("Hauptframe") eingesetzt, und siehe,: es klappt!
Habe alles mit aktiviertem uns deaktiviertem Javascript probiert, und neben IE auch die browser Netscape 4.x, 7.x, Firefox und Opera getestet: es geht bei allen wie gewünscht!
Du hast mir sehr geholfen. Für mich ist das erstmal die optimale Lösung, Man muß doch zugeben, daß die frames an sich auch ihre Vorteile haben.
Also besten Dank, Detlef,
m.mietke
Auf Wiederlesen
Detlef