Warn to Save before leaving a page...

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jamie Jackson

    Warn to Save before leaving a page...

    I've got a form that's nested in a larger application. I need to
    program it so that the user is warned to save upon clicking on any
    exit point in the application.

    So, if they click on any of the nav buttons in the header/nav bar,
    they need to get an alert:

    "Would you like to continue without saving your changes?"
    _Yes_ _No_

    It would be a big pain to retrofit the application's nav
    buttons/framework for just these forms, so I'm looking for a solution
    that doesn't require editing the source code of the application's
    existing navigation.

    What are my options?

    BTW, this application is for IE 5+ only, FWIW.

    Thanks,
    Jamie


  • bengee

    #2
    Re: Warn to Save before leaving a page...

    Jamie Jackson wrote:[color=blue]
    > So, if they click on any of the nav buttons in the header/nav bar,
    > they need to get an alert:
    >
    > "Would you like to continue without saving your changes?"
    > _Yes_ _No_[/color]

    <body onunload="if (confirm('Save changes?')) { doSomethingHere (); }">

    Comment

    • Jamie Jackson

      #3
      Re: Warn to Save before leaving a page...

      On Fri, 10 Oct 2003 00:31:24 +0100, bengee
      <postmaster@loc alhost.localdom ain> wrote:
      [color=blue]
      >Jamie Jackson wrote:[color=green]
      >> So, if they click on any of the nav buttons in the header/nav bar,
      >> they need to get an alert:
      >>
      >> "Would you like to continue without saving your changes?"
      >> _Yes_ _No_[/color]
      >
      ><body onunload="if (confirm('Save changes?')) { doSomethingHere (); }">[/color]

      Great! It still requires me to modify the application framework, but
      at least it's only in one place (good news). :)

      Thanks very much,
      Jamie

      Comment

      • Jamie Jackson

        #4
        Re: Warn to Save before leaving a page...

        On Fri, 10 Oct 2003 09:53:11 -0400, Jamie Jackson
        <wasteNOSPAMbas ket@bigfoot.com > wrote:
        [color=blue]
        >On Fri, 10 Oct 2003 00:31:24 +0100, bengee
        ><postmaster@lo calhost.localdo main> wrote:
        >[color=green]
        >>Jamie Jackson wrote:[color=darkred]
        >>> So, if they click on any of the nav buttons in the header/nav bar,
        >>> they need to get an alert:
        >>>
        >>> "Would you like to continue without saving your changes?"
        >>> _Yes_ _No_[/color]
        >>
        >><body onunload="if (confirm('Save changes?')) { doSomethingHere (); }">[/color]
        >
        >Great! It still requires me to modify the application framework, but
        >at least it's only in one place (good news). :)[/color]

        I think this isn't going to work. AFAIK, by the time you get the
        confirmation, you've already unloaded the page, and are halfway to the
        next. Is there a way to prevent the unLoad from continuing, when the
        user confirms in the negative?

        I'm racking my brain trying to figure out how to do this without
        retrofitting all of the nav links.

        I think I may be on to something with the following, would someone
        please let me know if I'm going in the right direction, or if there's
        an easier way, or if there's a solution to the onUnload issue above?

        function changeLinks(d) {
        // this picks up all the links but those in my popup nav :-( ...it's
        a start, though
        for (var i=0; i < d.links.length; i++) {
        // maybe save each link's old location into an array here, for
        later use

        // now, rewrite each link to a confirm. later, code the following
        to load a new window with the old url?
        d.links[i].href = "javascript : confirm('Exit before saving?')";
        }
        }
        changeLinks(doc ument);

        Thanks,
        Jamie

        Comment

        • bengee

          #5
          Re: Warn to Save before leaving a page...

          Jamie Jackson wrote:[color=blue]
          > I think this isn't going to work. AFAIK, by the time you get the
          > confirmation, you've already unloaded the page, and are halfway to the
          > next. Is there a way to prevent the unLoad from continuing, when the
          > user confirms in the negative?[/color]

          I think you're right there... the page is already on it's way to
          "unloading" and i don't think that can be stopped.
          [color=blue]
          > I'm racking my brain trying to figure out how to do this without
          > retrofitting all of the nav links.
          >
          > I think I may be on to something with the following, would someone
          > please let me know if I'm going in the right direction, or if there's
          > an easier way, or if there's a solution to the onUnload issue above?
          >
          > function changeLinks(d) {
          > // this picks up all the links but those in my popup nav :-( ...it's
          > a start, though
          > for (var i=0; i < d.links.length; i++) {
          > // maybe save each link's old location into an array here, for
          > later use
          >
          > // now, rewrite each link to a confirm. later, code the following
          > to load a new window with the old url?
          > d.links[i].href = "javascript : confirm('Exit before saving?')";
          > }
          > }
          > changeLinks(doc ument);[/color]

          This looks like a good way of doing it. Change the href's to something
          like :-

          d.links[i].href = "javascript : if (confirm('Exit? ')) {
          document.locati on.href = 'somefile.htm'; } else { void(0); }";

          Hope this works!!

          Ben

          Comment

          • Jamie Jackson

            #6
            Re: Warn to Save before leaving a page...

            Thanks again Ben,

            Here's what I came up with:

            <script language="JavaS cript1.2">
            function promptBeforeExi ting (oldLink) {
            if (confirm("Exit without saving?")) {
            window.location = oldLink;
            }
            }

            function switchLinks(d) {
            var oldLink="";
            for (var i=0; i < d.links.length; i++) {
            oldLink = d.links[i].href;
            d.links[i].href = "javascript : promptBeforeExi ting('"+ oldLink + "')";
            }
            }
            switchLinks(doc ument);
            </script>

            It's working very well for <a href>s, and now I've got to figure out
            how to disable my popup links as well...

            Thanks,
            Jamie

            Comment

            Working...