1

I'm having an issue in IE9 with onbeforeunload -- when the code below is run it repeatedly brings up a dialog asking if you want to stay or leave the page.

I modified my code to prevent default functioning based on this thread to no avail.

Any help on this would be much appreciated.

Code Sample:

window.onbeforeunload = function(e) {
    e.preventDefault();
    e.returnValue = false;
    saveFormData();
    return null;
}

function saveFormData() {
    $.post("<?php echo site_url('resume/cleanup'); ?>", { resume_id: "<?php echo $this->session->userdata('resume_id'); ?>" } );
}
Community
  • 1
  • 1
jsuissa
  • 1,754
  • 6
  • 30
  • 64

2 Answers2

3

You cannot send an AJAX request while the page is unloading as most browsers block it. You should ask the user to stay on the page if there is dirty data. That's all you should do from your onbeforeunload handler

Try your code without calling $.post and it should behave as expected

Ruan Mendes
  • 90,375
  • 31
  • 153
  • 217
1

The only thing you are allowed to do in an onbeforeunload handler is display a dialog. You specifically don't get any extra time to perform tasks which may take time to complete, like firing off HTTP requests — the user has asked to leave your site; aside from asking them politely whether they want to stay, you aren't allowed to make them stay (even while you clean up).

https://developer.mozilla.org/en/DOM/window.onbeforeunload