Alan Hathway: Inhalt von javascript:history.back()

Hallo Experten,

habe wenig Ahnung von Javascript. Habe folgendes von versch. Quellen zusammengebastelt:

(Es geht um Jugend Sportveranstaltungen - ich habe ein PC, womit Teilnehmer Information abrufen können)

Nach 5 Sekunden ohne Maus Bewegung wird automatisch zu eine andere Seite gesprungen:

<script language="JavaScript"><!--
function doit() {
    timerRunning = false;
    document.location.href="htmspiele.html#Teil2";
}
function microsoftMouseMove() {
    if (window.event.x != document.test.x.value && window.event.y != document.test.y.value) {
        if (timerRunning) {
            clearTimeout(myTimer);
            myTimer = setTimeout('doit()',5000);
        }
        document.test.x.value = window.event.x;
        document.test.y.value = window.event.y;
    }
}
var myTimer = setTimeout('doit()',5000); // invoke doit() after five seconds of mouse inactivity
var timerRunning = true;
//--></script>

sowie

<body onMousemove="microsoftMouseMove()">

sowie

<form name="test"><input type="hidden" name="x"><input type="hidden" name="y"></form>

Funktioniert wunderbar. Im Function doit gibt es der Befehl
    document.location.href="htmspiele.html#Teil2";
D.h. er springt zu einem bestimmten Anker in einer bestimmten Datei.

Folgendes geht auch:
 document.location.href="javascript:history.back();";
Dann geht er nach 5 Sekunden Maus-Inaktivität ‚zurück'.

Was ich mache möchte, aber nicht gebacken kriege, ist folgende Logik:
Wenn die letzte Seite htmspiel.html war, dann mach ein javascript:history.back(),
ansonsten sprung zu Anker #Teil2 in htmspiel.html

Anders ausgedruckt - wenn der Anwender von htmlspiele.html kam, dann möchte ich zurück AN DIE STELLE in htmspiele.html gehen, woher er kam (das macht javascript:history.back()) ansonsten zu #Teil2 in htmspiele.html

Folgendes geht nicht
function doit() {
    timerRunning = false;
  alan1="javascript:history.back();";
  alan2 = alan1.indexOf("htmspiele.html");
  if(alan2 = -1)
   {
    document.location.href="htmspiele.html#Teil2";
   }
  else
  document.location.href="javascript:history.back();";
}
Weil in der variable alan1 nicht der Name der Seite wohin gegangen wird gespeichert ist, sondern die Zeichenkette "javascript:history.back();"

Wer hilft mir auf die Sprünge?

Danke

Alan Hathway

  1. Hallihallo!

    Ich gehe mal davon aus, daß Du KEIN Frameset benutzt, und Du Deine Funktion in jede HTML- Datei packst, die Du hast..
    (dann lohnt sich das auslagern in eine *.js- Datei)...

    Dann bekommst Du die zuvor besuchte Seite über

    variable = document.referrer

    raus.

    Aber wie gesagt, das Funktioniert nur, wenn Du das Ganze nicht von einem anderen Frame aus steuern willst.

    Falls doch, gibt es noch eine andere Lösung, aber da müsste das komplette Seitenkonzept drauf abgestimmt werden.

    Ich hoffe, ich konnte Dir helfen, ansonsten musst Du Dich halt nochmal melden :)

    viele liebe Grüße,

    Der Dicki

    1. Hallo

      Es ist in einem Frameset, aber

      variable = document.referrer

      reicht aus (glaube ich).  Ich habe auf der linken Seite ein Menü. Auf der rechten Seite wird, wenn es keine Aktivität gibt, immer htmspiele.html gezeigt. Man kann aber auf der rechten Seite in htmspiele.html hoch und runter fahren und andere Sachen anklicken, die auch dann rechts (im gleichen Frame) gezeigt werden.

      Ich werde es probieren. Wenn es nicht klappt, poste ich neu, ansonsten: Danke Schön!

      Alan Hathway

    2. Hallo nochmals

      Doch nicht

      variable = document.referrer

      hilft nicht. Es ist bei mir immer leer :-(

      Laut SELFHTML Doku:
      Beim MS Internet Explorer wird in document.referrer nur dann etwas gespeichert, wenn der Aufruf der aktuellen Datei über das HTTP-Protokoll erfolgte, also mit einem Verweis vom Typ http://...../dieseDatei.htm.

      Ich habe ein einfaches Intranet und hupfe in meine Seiten durch
      a href="seite.html"
      weil alles im gleichen Verzeichnis ist.

      Kann ich irgendwie sagen
      a href="http://C:/Veranstaltung/seite.htm"
      ?
      wobei C:\Veranstaltung\ ein Verzeichnis auf meiner C: Platte ist?

      Alan Hathway

    1. Danke linksetzer, guter Tipp, aber löst mein Problem leider nicht

      Siehe

      http://forum.de.selfhtml.org/index.shtml?m=82492&t=14814

      Noch einen Tipp/Link?

      Alan Hathway

  2. Was ich mache möchte, aber nicht gebacken kriege, ist folgende Logik:
    Wenn die letzte Seite htmspiel.html war, dann mach ein javascript:history.back(),
    ansonsten sprung zu Anker #Teil2 in htmspiel.html

    Anders ausgedruckt - wenn der Anwender von htmlspiele.html kam, dann möchte ich zurück AN DIE STELLE in htmspiele.html gehen, woher er kam (das macht javascript:history.back()) ansonsten zu #Teil2 in htmspiele.html

    Hallo,

    dazu auch diese schöne Seite:

    http://praast.de/ffq/browser.htm#hist

    Gruß: kaspar

  3. Tach!

    document.location.href="javascript:history.back();";

    Diese Zeile ist gleich mehrfach 'doppelt gemoppelt'. Ein einfaches
      history.back();
    sollte reichen.
    Da der Browser zu der Stelle der entsprechenden Seite  zurückspringt wo er vorher schon war (jedenfalls meinem Test unter IE5.5 zufolge) meine ich, dass Du dir die ganze Abfrage wo der User herkommt schenken kannst und nur das history.back() benutzen müsstest.

    Wäre zumindest einen Versuch wert.

    Hoffe das hilft.

    Pen

    1. Hi

      Sieht so aus, als ob ich nicht ausreichend die Sache erklärt habe

      Wenn ich auf Seite-1 bin, scroll runter, klicke auf einen Link (linke Maustaste), Seite-2 ankucke und dann 'Zurück' klicke, bin
      ich an der GLEICHEN Stelle in Seite-1, wo ich Seite-1 verlasse habe.
      Das ist gut so. Diese Situation wollte ich herausfinden, in dem ich den document.referrer benutze und zur GLEICHEN Stelle zurückspringe in dem ich history.back() benutze

      Mein Anwender kann aber Seite-1 ankucken, klick auf Seite-2, dann klick aus Seite-3 (ggf. 4, 5 usw.). Dann verlässt er den PC.
      Ich möchte nach x Sekunden Inaktivität NICHT history.back() benutzen, da, ich dann bei Seite-n lande, sondern zurück zur Seite-1 springen

      Deswegen wollte ich wissen, was der Name der letzten Seite war.

      Bringe ich aber im Moment nicht hin.

      Danke trotzdem

      Alan Hathway