javascript:history.back() erweitern?

HPI-Service

Aktives Mitglied
Hallo,

mal eine Frage. Vielleicht ist ja die Lösung einfach, finde aber nirgends was dazu
wink.gif


Ich nutze für eine Website den Befehl "javascript:history.back()". Funktioniert soweit auch sehr gut. Nun aber zu meiner Frage.

Der Befehl nutzt ja nur die "zurück" Taste des Browser. Wenn jetzt aber die History leer ist, da z.B. direkt aus einer Mail auf die Seite verwiesen wurde, passiert ja logischerweise nix. Gibt es die Möglichkeit zu prüfen ob die History leer ist und wenn ja das der Browser dann anstatt javascript:history.back() einen normalen <a href> Link nutzt?

Vielen Dank im voraus.

Gruß
Mirko
 
Refferer = 'seite'; //übergibst du z.B. per php o.ä., dann hast du den letzten referrer überall im javascript verfügbar

if(history.length == 0){
window.locate(Referrer);
}else{
history.back();
}


Ich habs nicht getestet, obs geht, müsste aber theoretisch
wink.gif
 
http://de.selfhtml.org/javascript/objekte/history.htm
und von der Url speziell:
http://de.selfhtml.org/javascript/objekte/history.htm#length

dürfte dich interessieren.

Ansonsten:
http://www.praast.de/ffq/browser/#hist

*OFF Topic*
Naja nächstes mal vielleicht selber mal zu Google gehen und History leer Javascript eintippen
Und zu de.selfhtml.org gehen und history eintippen +g+ dann geht das super auch ohne Forum
smile.gif


// Edit
CODE
<script>
function goback (sonsturl) {
if (history.length > 0) {
history.back ();
} else {
window.location.href(sonsturl);
}
}
</script>

<a href="javascript:goback('sonstige_URL.html')">zurück</a>

 
Hallo,

vielen Dank für Eure Hilfe. Werd es die Tage mal testen und bescheid sagen ob es geht
rolleyes.gif


@ manuel

ich hatte gegoogelt und nix passendes gefunden und war auch auf selfhtml und hatte auch dort keine lösung gefunden
wink.gif


recherchiere bzw. versuche immer erst ein Problem selber zu lösen, aber kam nicht weiter deswegen das Forum
tongue.gif


Gruß
Mirko
 
Hallo,

so habe es gerade getestet.

Im IE alles wunderbar, im Firefox funktioniert es leider nicht 100%. Sprich die reine history.back Funktion geht (sofern halt die History >0), aber wenn die History leer ist springt er nicht zu der Datei aus dem <a href> Befehl
unsure.gif


Jemand ne Idee warum? Habe schon gegoogelt und gesehen das der Firefox Probleme mit dem "window.location.href" Befehl hat. Habe auch schon alles mögliche probiert . Der Trick mit CODE var ziel = "datei.htm";
window.location.href = ziel;

geht aber auch nicht...

Komme nicht weiter
sad.gif


Gruß
Mirko
 
CODE
function meDoBack(refer){
if(history.go(-1)){
// ok
}else{
window.location.href = refer;
}
}

 
Mein voriges Beispiel geht leider auch nicht wie ich feststellen musste. Ich hab aber jetzt extra eine halbe Stunde für dich rumprobiert und eine annehmbare Lösung gefunden.

CODE
function linkme(link){
window.location.href = link;
}

function meDoBack(refer){
if(document.referrer != ''){
window.location.href = document.referrer;
}else{
history.back();
window.setTimeout("linkme('"+refer+"')", 2000); //nach 2 sekunden spätestens ist man eh schon auf .back(), wenn nicht, gilt diese funktion!
}
}

 
@ nitrit

vielen vielen Dank für die Lösung und Deine Zeit die Du dafür investiert hast
biggrin.gif


funktioniert wunderbar das ganze....
wink.gif


Wenn ich Dir mal bei was helfen kann, sag bescheid!

Gruß
Mirko
 
Nachtrag:

offline funktionierte alles wunderbar, aber online gings warum auch immer im ie nicht!

aber folgende kleine änderung bewirkt das es jetzt ohne problem funktioniert:

CODE if(document.referrer != '')

ändern in:

CODE if(document.referrer > 0)


so sieht jetzt mein kompletter überarbeiteter code aus (für die die es auch gebrauchen können
rolleyes.gif
):

Head-Bereich:

CODE <script type="text/javascript">
function linkme(link){
window.location.href = link;
}
function back(refer){
if(document.referrer > 0){
window.location.href = document.referrer;
}else{
history.back();
window.setTimeout("linkme('"+refer+"')", 500);
}
}
</script>


Body-Bereich:

CODE <a href="javascript:back(seite.html')">zurück</a>


Habe noch die Zeit auf 500ms runtergedreht und geht so auch mit ner 28.8 Modem Verbindung
biggrin.gif


Vielen Dank nochmal an alle....

Gruß
Mirko
 
Hallo!

Bei mir funktioniert leider gar nichts mehr nach dem Code-Einbau. Weder der normale Rücksprung aus der History, noch die fixe Seite.

Ausserdem bräucht ich ne Variation:
Ich hätts gern so, dass die Navigationsgrafik für den Rücksprung (Pfeil nach links) erst angezeigt wird, wenn in der History eine vorherige Seite enthalten ist.

Von Java hab ich so wenig Ahnung, dass ich das selbst leider nicht hinbekommen werde.
Hat einer nen Tipp, der nen Anfänger erlöst?

danke Euch
 
Servus!
und Sorry: Darf ich den Post nochmal hochhieven?

Hab ich die Frage unpräzise formuliert oder ist mein Problem schon irgendwo gelöst?
Danke für nen Tipp.

Schöne Feiertage.
 
QUOTE Hat einer nen Tipp, der nen Anfänger erlöst?

Ja
wink.gif
Lerne wie die Fehlerkonsole in Deinem Browser funktioniert. Lasse dir die Javascript Fehler anzeigen und google dannach wenn nötig.


QUOTE Bei mir funktioniert leider gar nichts mehr nach dem Code-Einbau.

Was genau funktioniert nicht? Das eben sagt dir die Fehlerkonsole. Von aussen ist eine Ferndiagnose nicht möglich.
 
Zurück
Oben