Unable to unbind the window beforeunload event in Jquery

16,880

beforeunload doesn't work reliably this way, as far as binding goes. You should assign it natively:

window.onbeforeunload = function() {
  return 'You have not yet saved your work.Do you want to continue? Doing so, may cause loss of your work' ;
}

And in your save method:

window.onbeforeunload = null;
Share:
16,880
bitblt
Author by

bitblt

Updated on June 26, 2022

Comments

  • bitblt
    bitblt almost 2 years

    I have a page where the user can drag and drop objects and save them as an image.When a user navigates away from the page, the event beforeunload is fired. Now, this happens every time. What i want to do is, unbind the event if the user has saved his work, so that the message may not pop up again.To do this i have used the unbind method in jQuery. But, it does not seem to work. Below is the code for binding and unbinding the events.

    var notSaved = function()
    {
       return 'You have not yet saved your work.Do you want to continue? Doing so, may cause loss of your work' ;
    }
    $(window).bind('beforeunload', notSaved);
    

    After save method has been called,

    $(window).unbind('beforeunload', notSaved);
    

    What am i doing wrong here?
    Also, the save method is actually an Ajax call.

  • bitblt
    bitblt over 13 years
    Thank you so much...that saved the day for me :)
  • brupm
    brupm over 9 years
    This won't work in IE, what you want is window.onbeforeunload = undefined