ketchup: verlassen des documents verhindern?

hi!

geht es, dass ich das verlassen des documents zb durch back oder forward verhindere?

problem ist, dass ich ein dokument nur durch eine saubere funktion verlassen möchte. dh entweder abspeichern oder frage nach verlust der änderungen.

wenn jemand "back" klickt, verlässt er leider das dokument und die änderungen gehen verloren. dies möchte ich verhindern.

habes es mal so versucht:

function tu_nix()
{
    return false;
}

<BODY onUnload="return tu_nix()">

die funktion wird zwar brav aufgerufen, trotzdem wird eine seite in der history zurückgegangen.

bitte um hilfe
danke im voraus

jürgen

  1. problem ist, dass ich ein dokument nur durch eine saubere funktion verlassen möchte. dh entweder abspeichern oder frage nach verlust der änderungen.

    Wenn ich es recht verstehe, willst du eine Art Admin-Tool entwerfen, und mögliche Fehler bei der Menüführung sinnvoll auffangen, und nicht nur damit den User ärgern, das ist schon mal gut :)

    Ich habe zwei Lösungsansätze:

    1. Lass die Startseite des Tools ein neues Browserfenster öffnen, in dem dann der Rest des Programms abläuft. Das neue Fenster sollte dann einfach keine URL- und Buttonleiste haben.
      Damit bekommst du es allerdings nicht hin, wenn z.b. ein User die 4. Maustaste mit BACK belegt hat, so wie ich.

    wenn jemand "back" klickt, verlässt er leider das dokument und die änderungen gehen verloren. dies möchte ich verhindern.

    Wenn man danach wieder "Vorwärts" klickt, sind in meinem Browser bei FORM-Eingaben die Belegungen wieder da. Vielleicht eine Übergangslösung?

    habes es mal so versucht:

    function tu_nix()
    {
        return false;
    }

    <BODY onUnload="return tu_nix()">

    die funktion wird zwar brav aufgerufen, trotzdem wird eine seite in der history zurückgegangen.

    1. Könnte nicht hinhauen: In die Funktion mit "print" die komplette Seite neu schreiben, inklusive Feldbelegungen...
    1. Wenn ich es recht verstehe, willst du eine Art Admin-Tool entwerfen, und mögliche Fehler bei der Menüführung sinnvoll auffangen, und nicht nur damit den User ärgern, das ist schon mal gut :)

      ja genau, es soll ein admin-tool werden.
      reine interne lösung - also kein ärgern der surfer im internet!

      1. Lass die Startseite des Tools ein neues Browserfenster öffnen, in dem dann der Rest des Programms abläuft. Das neue Fenster sollte dann einfach keine URL- und Buttonleiste haben.
        Damit bekommst du es allerdings nicht hin, wenn z.b. ein User die 4. Maustaste mit BACK belegt hat, so wie ich.

      diese überlegungen hatte ich auch - leider nicht ganz praktikabel, da ich ja meine user-gewohnheiten kenne *gg*

      Wenn man danach wieder "Vorwärts" klickt, sind in meinem Browser bei FORM-Eingaben die Belegungen wieder da. Vielleicht eine Übergangslösung?

      kommt auf das formular bzw wie das formular erstellt wird an.
      wenn per skript (zb php) erstellt, sind formulardaten weg.

      1. Könnte nicht hinhauen: In die Funktion mit "print" die komplette Seite neu schreiben, inklusive Feldbelegungen...

      wäre ein lösung.
      war auch schon mein gedanke.
      allerdings müßte ich beim verlassen die daten speichern.

      meine überlegungen wären:

      • beim betätigen der back-taste oder ähnliches also bei "onUnload" speichern der ganzen formulardaten
      • dann automatisches reload der formularseite
      • ausfüllen der formularfelder mit den zuvor gespeicherten daten

      klingt etwas aufwendig ;-)

      danke für deine gedanken.

      jürgen

  2. problem ist, dass ich ein dokument nur durch eine saubere funktion verlassen möchte. dh entweder abspeichern oder frage nach verlust der änderungen.

    wenn jemand "back" klickt, verlässt er leider das dokument und die änderungen gehen verloren. dies möchte ich verhindern.

    Willkommen im Internet.

    Du kannst mit HTTP keine Anwendung 1:1 umsetzten, da du keinerlei Kontrolle über den Status auf dem Client Rechner hast. Ins leere laufende Aktionen sind eher die Regel, als die Ausnahme und nicht zu verhindern oder zu kontrollieren.

    Struppi.

  3. Hi,

    function tu_nix()
    {
        return false;
    }

    vielleicht sowas?
    function tu_nix() {
      if (!confirm("Ungesichert beenden?")) {
        self.location.href=self.location.href;
      }
    }

    Gruesse  Joachim

    1. hi,

      vielleicht sowas?

      nein.

      function tu_nix() {
        if (!confirm("Ungesichert beenden?")) {
          self.location.href=self.location.href;

      lädt die seite neu, gemachte änderungen sind jetzt auch im nirwana.

      struppis antwort beschreibt es schon am besten.

      gruss,
      wahsaga

    2. Hi,

      function tu_nix()
      {
          return false;
      }

      vielleicht sowas?
      function tu_nix() {
        if (!confirm("Ungesichert beenden?")) {
          self.location.href=self.location.href;
        }
      }

      Gruesse  Joachim

      leider nicht die lösung (hab ich auch überlegt), denn hier sind FORM-eingaben verschwunden => genau das problem, das ich verhindern möchte.

      trotzdem danke
      jürgen