Komme nicht mehr zurück
dalton
- html
Hallo Leute,
ich habe ein Problem:
Ich habe den freeware Onlineshop von www.zwahlen-informatik.ch in meine Page eingebaut. Klicke ich jetzt auf "shop" öffnet sich der Shop wunderbar. Er überschreibt meine bisherigen Frames so wies sein soll. ok. Gehe ich aber auf den zurückbutton des Browsers sehe ich nur ganz kurz die Seite die kommen soll, komme aber sofort wieder in den Shop--> ich komme da nicht mehr raus auch nicht mit einer separaten URL Angabe was nur die Seite in dem kleien Fenster öffnet was von Frames umgeben ist. Mit javascript windowopen gehts auch nicht wird knallhart vom shop ignoriert.
Kann mir jemand bitte bitte helfen.
Danke im voraus.
Dalton
Komme nicht mehr vorwärts,
mein (Vor-)Button ist grau hinterlegt, wenn ich drauf klicke passiert nix
warum nur! ;)
Sorry, das musste sein! Es ist einfach zu komisch!
Komme nicht mehr vorwärts,
mein (Vor-)Button ist grau hinterlegt, wenn ich drauf klicke passiert nix
warum nur! ;)
Sorry, das musste sein! Es ist einfach zu komisch!
Haha sehr komisch, leider ist der Button nicht grau und zum zweiten wenn ich mit dem dropdown menü eine Seite überspringe komme ich zurück. Danke für Deine Hilfe.
Dalton
Hi,
schätzungsweise ist die "Einstiegsseite" des Shops nur eine Weiterleitungsseite (um Browser-Infos zu sammeln?), die verm. mit location.href auf die zweite Seite weiterleitet. Wenn Du dann den Back-Button benutzt, kommst Du immer wieder auf diese Weiterleitungsseite und damit in den Shop. Finde diese Seite und nimm statt location.href lieber location.replace, das setzt sich nicht in der Browser-History fest und wird beim Benutzen des Back-Buttons ignoriert.
Grüße,
Utz
Hi
(für alle Mitlesenden - was in der Zwischenzeit geschah: Dalton mailte mir die URL seiner Seite, und ich durfte sie mal ansehen...)
Die Weiterleitung ist mit <meta http-equiv="refresh" ...> gelöst - das hinterlässt einen Eintrag in der History. Der ist aber auf 10 Sekunden eingestellt, d.h., das Verhalten dürfte nicht so auftreten wie Du beschreibst - die Einstiegsseite sollte bei einem Back-Klick zu sehen sein, und erst 10 Sekunden später weitergeleitet werden. Bei mir (Mozilla 1.0) ist es wieder anders: da hinterlässt die Einstiegsseite keinen Eintrag in der History - alles prima. Ich schätze, Du hast irgend ne Art Weiterleitung in Deinem Flash-Film, der dieses Verhalten (bei Dir flasch, bei mir ok) verursacht.
Grüße,
Utz
Hallo Utz,
danke für Deine Hilfe, aber das Prob ist nicht beim Flashfilm.
Nach dem Flashfilm kommt die normale Seite mit mehreren Buttons im Frame. Ein Button verweist auf den Shop. So und jetzt öffnet sich auch der Shop aber ich komm vom Shop nicht mehr auf ich nenns mal Hauptseite. Ich kann nur mit dem dropdown - menü beim Zurückbutton den angesprochenen Flashfilm starten und dann wieder auf die Hauptseite kommen also die Hauptseite überspringen.
Kannst dir es bitte nochmal ansehen Utz.
Danke im voraus.
Dalton
Hi Dalton,
ah, ich glaub ich versteh jetzt was Du meinst (wenn auch mein Mozilla offensichtlich so schlau ist, die fragliche Seite lieber gar nicht in die History aufzunehmen und daher das unerwünschte Verhalten bei mir nicht auftritt).
Der Link zum Shop ist so gecoded:
<a onclick="MM_openBrWindow('shopindex.htm', 'menubar=yes,resizable=yes,width=620,height=420')" href="shopindex.htm"><img img src=images/m_shop1.jpg border=0></a>
Da passiert folgendes: onclick wird ein neues Fenster geöffnet mit der Shopeinstiegsseite. Da kein return false; notiert ist, wird auch der im href notierte Link ausgeführt, und zwar innerhalb des dortigen Framesets.
shopindex.htm enthält jetzt aber wieder einen Frame-Sprenger:
if(top.frames.length > 0) top.location.href=self.location;
Und da ist er, der "böse" location.href.
Es passiert folgendes:
[1] Hauptseite. Klick auf Link "Shop" führt (neben dem neuen Fenster) auch zu
[2] shopindex.htm innerhalb Frameset. Das Frame-Sprenger Script erkennt das und führt zu
[3] shopindex.htm im Hauptfenster.
Ein Click auf "Zurück" führt Dich zu [2], das Frame-Sprenger-Script wird aktiv und leitet weiter zu [3]. Mit normalem Zurück-Button kommst Du so - wie Du ja beschreibst - nicht zur Hauptseite zurück.
Du kannst folgendes tun:
1. Ersetze top.location.href=self.location; durch top.location.replace(self.location); - das hinterlässt keinen Eintrag in der History, und das unerwünschte Verhalten tritt nicht auf.
2. Gib Deinem Link einen target auf "_top", also:
<a onclick="MM_openBrWindow('shopindex.htm', 'menubar=yes,resizable=yes,width=620,height=420')" href="shopindex.htm" target="_top"><img src=images/m_shop1.jpg border=0></a>
Damit wird das Frameset "gelöscht" und shopindex.htm außerhalb von Frames dargestellt - der Frameset-Sprenger braucht überhaupt nict anuzspringen.
3. Vermutlich ist eh ein Unfall, dass shopindex.htm doppelt (im neuen Fenster _und_ im Hauptfenster) angezeigt wird - oder? Du verhinderst das, wenn Du dem onclick noch ein return false; beifügst, also:
<a onclick="MM_openBrWindow('shopindex.htm', 'menubar=yes,resizable=yes,width=620,height=420'); return false;" href="shopindex.htm" target="_top"><img src=images/m_shop1.jpg border=0></a>
return false; verhindert, dass der durch href definierte Link ausgeführt wird. Damit hättet Du dann: shopindex.htm im neuen Fenster, die Hauptseite unverändert im Hauptfenster. Leute ohne JavaScript erhalten dann kein neues Fenster, dafür aber shopindex.htm im Hauptfenster. Wenn auch Leute ohne JavaScript die shopindex.htm in nem Fenster sehen sollen, kannst Du target="_top" durch target="_blank" ersetzen. In der Regel ist das die optimale Lösung.
Trotzdem solltest Du außerdem auch noch die Änderung von Punkt 1 durchführen; sie ist dafür gedacht, dass ein eventuelles fremdes Frameset gesprengt wird. In diesem Falle wurde das unerwünschte Verhalten immer noch auftreten, wenn Du den Code da nicht änderst.
Grüße,
Utz
Vielen, vielen Dank Utz für die Mühe die Du dir gemacht hast.
Gruß
Dalton