history.back() bei Opera 5.12, Umleitung ältere Browser
Sabine
- javascript
Hallo!
Zuerst einmal ein großes Lob an SelfHTML und alle die daran teilhaben. Vor allem im Forum habe ich mir schon oft Anregungen holen können, um meine Probleme zu lösen! Echt toll. Heute hat es leider (noch) nicht geklappt. Ich sitze über meinen Problemchen und knoble und suche und komme nicht drauf ... Vielleicht kann mir jemand von euch helfen?
Ich habe ein Frameset definiert - Hauptmenü oben und unten, Untermenüpunkte links, Inhaltsseite in der Mitte.
Was ich erreichen möchte, ist dass ausgehend von der Inhaltsseite die richtigen Menüs (oben, unten und links angezeigt werden). Das Ganze sollte auch bei Betätigung des zurück-Buttons der Browser funktionieren.
Ich habe nun 2 Versionen erstellt, von denen beide meinen Wunsch nicht ganz erfüllen.
Nr. 1 - die einfachere Version. Ich rufe über einen Link <a href="datei.htm"> ganz normal meine Inhaltsseite auf und in dieser befindet sich dann ein JS, dass die anderen Seiten lädt:
<script ....>
function OpenFrame()
parent.frames[2].location.replace("datei1.htm");
etc.
</script>
Das Ganze funktioniert wunderbar in allen Browsern, allerdings gibt es bei Opera 5.12 ein Problem - beim Seitenaufruf klappt es, betätige ich aber den Zurück- oder Vorwärts-Button wird nur der Inhaltsframe geändert, meine Navigationsframes gehen nicht mit.
Variante 2: Script im Link, in dem ich den Inhaltsframe aufrufe - hier schon mal ein Dankeschön vorweg, das Script habe ich bei SelfHTML gefunden:
function ZweiFrames(URI1,F1,URI2,F2)
{
var agt=navigator.userAgent.toLowerCase();
var is_opera = (agt.indexOf("opera") != -1);
var is_operahide = ((agt.indexOf("opera") != -1) && ((agt.indexOf("msie") != -1) || (agt.indexOf('mozilla')!=-1)));
if (is_opera || is_operahide) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.location.href = URI1;
Frame2.location.href = URI2;}
else
{
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.location.replace(URI1);
Frame2.location.href = URI2;
}
}
Der Verweis lautet dann <a href="javascript:ZweiFrame ('datei.htm','target','datei1.htm','target1'>
So, und in der Inhaltsdatei habe ich dann nochmals die Funktion OpenFrame() von der vorherigen Version - so funktioniert es in allen Browsern, auch bei zurück. Was mich aber stört ist dass das ganze natürlich recht lange dauert, da die Seiten doppelt ersetzt werden. Weiß irgendjemand eine Lösung, wie ich mein Ziel, so wie ich es mit Version 2 erreicht habe auf eine einfachere und für die Besucher meiner Seite schneller erreichen kann?
Danke im Voraus!!
Wer sich das Ganze live ansehen will: Unter http://web.utanet.at/pekarzsa/webkmu läuft ein Test der Version 2.
Und noch eine Frage: Gibt es irgendeine Möglichkeit (ausser der Definition eines eigenen Zurück-Buttons oder -Links) Netscape 6 dazu zu bringen, die einzelnen Seiten zurückzugehen. Er schreibt Seiten, die innerhalb eines Framesets aufgerufen werden offensichtlich nicht in die History ...
Und mein Problem Nr. 2 - ich habe eine 2. Version meiner Homepage erstellt, die Ihren Beginn im Noframes-Bereich meines Framesets hat - für Browser die keine Frames darstellen, für Browser die kein JS unterstützen bzw. wo JS deaktivert wurde und für ältere Browser.
Nun habe ich in den Headbereich meiner Frameset-Datei die einzelnen Weiterleitungen definiert
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
if (((navigator.appVersion.substring(0,1)) <=3))
window.location.href="start.htm";
document.clear();
else
return false;
//-->
</SCRIPT>
<NOSCRIPT>
<META HTTP-EQUIV="REFRESH" content="0; URL=start.htm">
</NOSCRIPT>
Herzlichen Dank im Voraus!
Sabine
Hallo nochmals!
Hallo!
Nr. 1 - die einfachere Version. Ich rufe über einen Link <a href="datei.htm"> ganz normal meine Inhaltsseite auf und in dieser befindet sich dann ein JS, dass die anderen Seiten lädt:
<script ....>
function OpenFrame()
parent.frames[2].location.replace("datei1.htm");
etc.
</script>
Das Ganze funktioniert wunderbar in allen Browsern, allerdings gibt es bei Opera 5.12 ein Problem - beim Seitenaufruf klappt es, betätige ich aber den Zurück- oder Vorwärts-Button wird nur der Inhaltsframe geändert, meine Navigationsframes gehen nicht mit.
Ich denke, dass Problem ließe sich ganz einfach lösen, wenn ich Opera dazu bringe, dass er die Seite neu lädt, wenn ich durch history.back() hinkomme. Leider weiß ich aber nicht, wie ich das machen muss.
Und mein Problem Nr. 2 - »» Nun habe ich in den Headbereich meiner Frameset-Datei die einzelnen Weiterleitungen definiert
Das Problem bin ich umgegangen, indem ich einfach noch eine Seite vorgeschalten habe und hier schon die "Umleitung" eingefügt habe. Interessieren würde es mich aber trotzdem, ob es funktioniert, einen Browser davon abzuhalten, den Code zu Ende zu lesen.
Ich würde mich sehr über eine Antwort freuen.
Herzlichen Dank im Voraus!
Sabine