Utz: Exit

Beitrag lesen

Hallo Heinz,

Du hast so eine sinnlose Startseite, die dann auf den eigentlichen Inhalt weiterleitet. Diese Weiterleitung wird mit JavaScript geregelt, und zwar mit der Anweisung location.href = (...) - ein Beispiel aus dem Code:

function vs_multilink(URL1,F1,OP1,URL2,F2,OP2,URL3,F3,OP3)
 {URL=new Array(); F=new Array(); OP=new Array(); URL[1] = URL1; URL[2] = URL2; URL[3] = URL3; F[1] = F1; F[2] = F2; F[3] = F3; OP[1] = OP1; OP[2] = OP2; OP[3] = OP3;
 for(i=1;i<=3;i++){if(URL[i] != "") {
  if(F[i] == "_blank") {window.open(URL[i])}
  else{ if(F[i] == "_self") {location.href=URL[i];}
      else{ if(F[i] == "_top") {top.location.href=URL[i];}
   else{ if(OP[i] != "") {vs_openbr(URL[i], F[i], OP[i])}
    else{ parent.frames[F[i]].location.href=URL[i];}}}}}}}

Du siehst die location.href-Stellen? Die machen folgendes: sie leiten einfach weiter. Ist jetzt jemand auf Deiner eigentlichen Seite und will zurück, kommt er auf die Startseite, die ihn dann wieder auf den Inhalt schickt, immer im Kreis herum...(deswegen ist Heinrichs Vorschlag hier nicht zielführend) - außer, Du hast einen Browser (wie z.B. Aleksej und ich) der solche Fallen erkennt und überspringt.

Wer mit JavaScript umgehen kann, wird an einer solchen Stelle _nie_ location.href benutzen, es gibt nämlich eine Alternative: location.replace() (vgl. http://selfhtml.teamone.de/javascript/objekte/location.htm#replace). Die hinterlässt keinen Eintrag in der Browser-History und damit kann das Problem nicht auftreten. Du kannst im Prinzip einfach jede Stelle, wo location.href auftaucht, durch location.replace() ersetzen - Achtung dabei: die Syntax ist anders: Es heißt location.href=URL[i], aber location.replace(URL[i])

Grüße,

Utz