views:

25

answers:

2

Is it possible to use javascript to handle the event of refreshing page? What i want is get notice if user do one of these behaviours:

  • refresh page by pressing F5
  • close tab or browser
  • enter a new url then press enter on browser

to display a warning message?
Thanks in advance!

+2  A: 

The closest you could get is the window.onbeforeunload event:

window.onbeforeunload = function (e) {
    var e = e || window.event;

    // For IE and Firefox
    if (e) {
        e.returnValue = 'Leaving the page';
    }

    // For Safari
    return 'Leaving the page';
};

It is important to note that you need to return a string from this function.

Darin Dimitrov
I'm pretty sure that you don't need to do anything with `e.returnValue` for IE/FF. You just need to return a string.
Matt Ball
+2  A: 

You don't want the refresh, you want the onbeforeunload event.

http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx

Sample code from article

<HTML>
<head>
<script>
function closeIt()
{
  return "Any string value here forces a dialog box to \n" + 
         "appear before closing the window.";
}
window.onbeforeunload = closeIt;
</script>
</head>
<body>
  <a href="http://www.microsoft.com"&gt;Click here to navigate to 
      www.microsoft.com</a>
</body>
</html>
Lou Franco