Sorgenkind mech: fensterschließung verhindern | take two

re

da bin ich wieder, mit einem alten problem
auf grund der stellung meines threads und einer ....... sagen wir unqualifizierten bzw. herablassenden antwort von jemand, dessen name hier keine rolle spielen soll, und nach dem auch bitte nicht nachgesehen werden soll, poste ich hier abermals meine frage ......
bitte nehmt es mir nich krumm, dieses doppelposting, jedoch benötige eine richtige antwort, kein hirnloses ........... egal

hier nochmal das problem:

ich hab das kleine problem, dass ich verhindern will, dass ein frame geändert werden kann, wenn dort drin etwas bearbeitet wurde

ich hatte mir folgendes überlegt:
es sind ja zwei frames, in dem einen das menü, der andere wo man daten eingeben kann

so, jetz könnte man ja sobald eine taste gedrückt wurde oder halt generell dem navigationsframe, wo man ja den unteren frame ändern kann, ne variable übergeben, also den obigen frame neu laden, sodass der dann weiß, dass unten was verändert wurde ......

wäre ne alternative

am liebsten wäre mir jedoch, wenn ich zum beispiel im body angeben kann onunload="userauthenticationforchange()"

und denn halt in der funktion confirm("blabla wirklich?"); endgültig zu bestätigen, ob die seite gewechselt werden soll

kann mir vorstellen, dass das nich möglich is, wär aber schön

anregungen werden gerne entgegengenommen

gruß

  1. hi

    am liebsten wäre mir jedoch, wenn ich zum beispiel im body angeben kann onunload="userauthenticationforchange()"

    und denn halt in der funktion confirm("blabla wirklich?"); endgültig zu bestätigen, ob die seite gewechselt werden soll

    kann mir vorstellen, dass das nich möglich is, wär aber schön

    treffer und versenkt - geht zum Glück nicht. Selbst wenn, würde mich deine Seite dann wohl auch nie wiedersehen.

    Grüße aus Bleckede

    Kai

    [der ohne besonderen Hinweis immer vom Internet und keinem Intranet o.ä. ausgeht]

    1. naja, das ganze wird n firmenverwaltungsprogramm, also keine öffentliche seite, und soll verhindern, dass man das frame wechselt, ohne dass man die eingegebenen daten abspeichert, weil da kann viel arbeitszeit draufgehen

      PS: es geht um einen frame, nicht um ein ganzes fenster!

      hoffe, dass es noch einen kleinen lichtblick gibt, sonst muss ich mein bereits ausgeklügeltes verfahren anwenden, auch wenn es mehr arbeit bedeutet ;(

      gruß

      1. hi

        naja, das ganze wird n firmenverwaltungsprogramm, also keine öffentliche seite,

        DAS hättest du gleich sagen sollen, es steht nicht ohne Grund auch in der FAQ. Wenn man nichts sagt gehen die meisten hier vom öfentlichen Internet aus, wo man eben den Usern gewisseDinge auf keinen Fall zumuten kann.

        und soll verhindern, dass man das frame wechselt, ohne dass man die eingegebenen daten abspeichert, weil da kann viel arbeitszeit draufgehen

        ich würde mal sagen, dass haben die spätestens beim 3ten Mal gelernt ;)
        ..ansonsten eben in rot und blinkend unten drunter "Speichern nicht vergessen", wer es dann immer noch nicht gemerkt hat, dem is auch nimma zu helfen.

        Grüße aus Bleckede

        Kai

        1. die merken sich das auch beim tausendsten mal nich ;)

          bitte entschuldige meine etwas unaufschlüssige formulierung, sowie, wie mir gerade auffällt, des inkorrekte threadname ....

    2. alternativ wäre ja noch die übergabe einer variablen ohne neuladen des navigationsframes zu bedenken, wodurch der wüsste, dass der datenframe editiert wurde ......... zum beispiel in dem man den namen des navigationsframes ändert, und dann abfragt, ob er nu zum beipsiel nich mehr "nav" heißt ........ nur hab ich keine ahnung wie ich das realisieren soll, jemand ne idee?
      gruß

  2. re

    Hi Mech

    ich hab das kleine problem, dass ich verhindern will, dass ein frame geändert werden kann, wenn dort drin etwas bearbeitet wurde

    ich hatte mir folgendes überlegt:
    es sind ja zwei frames, in dem einen das menü, der andere wo man daten eingeben kann

    so, jetz könnte man ja sobald eine taste gedrückt wurde oder halt generell dem navigationsframe, wo man ja den unteren frame ändern kann, ne variable übergeben, also den obigen frame neu laden, sodass der dann weiß, dass unten was verändert wurde ......

    ich nehme jetzt mal an, dass du Formularfelder hast, in denen Änderungen gemacht werden. In diesen kannst du doch einfach mit dem "onChange" Event die Änderung abfragen und in einer "globalen" Variablen z.B. in deiner Frameindexseite abspeichern, was dann ungefähr so aussehen könnte:

    <input type="text" onChange="top.frames.document.saved=false">

    wäre ne alternative

    am liebsten wäre mir jedoch, wenn ich zum beispiel im body angeben kann onunload="userauthenticationforchange()"

    und denn halt in der funktion confirm("blabla wirklich?"); endgültig zu bestätigen, ob die seite gewechselt werden soll

    kann mir vorstellen, dass das nich möglich is, wär aber schön

    anregungen werden gerne entgegengenommen

    gruß

    Gruß,
    Benne

  3. Sup!

    Danke für die Blumen!

    Du hast mein Posting offensichtlich nicht verstanden: Die implizite Botschaft war: Ich finde Deine Frage unverständlich bzw. unterspezifiziert bzw. mangelnd erläutert. Da du die Frage natürlich kein bisschen verändert hast, bevor Du sie zum zweitenmal ins Forum geworfen hast, kann ich sie auch diesmal nicht beantworten.

    Gruesse,

    Bio

  4. Hallo Sorgenkind,
    Mach in den Navigationsframe ein Javascript-Bereich
    <script language="JavaScript">
    var dirty=false;
    function SetDirty(b)
    { dirty=b;
    }
    function LinkClick()
    { if (! dirty) return(true);
      if (confirm("Die Bearbeitung des aktuellen Formulars wird hiermit abgebrochen.")) return(true);
      return(false);
    }
    Bei allen Links im Navi-Frame machst Du
    <a href="xyz.html" onClick="LinkClick()">xyz</a>

    Jetzt zum Frame mit einem Formular:
    Mach eine JavaScript-Funktion
    SetDirty(b)
    { parent.frames[0].SetDirty(b)
    }
    Jedes editierbare Formelement machst Du so ähnlich wie das hier:
    <input name="blabla" onChange="SetDirty(true)">
    Dann gibts da sicher noch einen Submit-Button. Nach dem Check, ob alle Eingaben korrekt sind und vor dem Abschicken machst Du noch
    SetDirty(false);
    Damit dürfte es gehen.
    MfG. Lutz T.