Created
July 26, 2012 16:58
-
-
Save viniciusss/3183220 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var validNavigation = false; | |
function wireUpEvents() { | |
console.log('a'); | |
/** | |
* For a list of events that triggers onbeforeunload on IE | |
* check http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx | |
* | |
* onbeforeunload for IE and chrome | |
* check http://stackoverflow.com/questions/1802930/setting-onbeforeunload-on-body-element-in-chrome-and-ie-using-jquery | |
*/ | |
var dont_confirm_leave = 0; //set dont_confirm_leave to 1 when you want the user to be able to leave withou confirmation | |
var leave_message = 'You sure you want to leave?' | |
function goodbye(e) { | |
if (!validNavigation) { | |
if (dont_confirm_leave!==1) { | |
if(!e) e = window.event; | |
//e.cancelBubble is supported by IE - this will kill the bubbling process. | |
e.cancelBubble = true; | |
e.returnValue = leave_message; | |
//e.stopPropagation works in Firefox. | |
if (e.stopPropagation) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
} | |
//return works for Chrome and Safari | |
return leave_message; | |
} | |
} | |
} | |
window.onbeforeunload=goodbye; | |
// Attach the event keypress to exclude the F5 refresh | |
$('document').bind('keypress', function(e) { | |
console.log(e.keyCode); | |
if (e.keyCode == 116){ | |
validNavigation = true; | |
} | |
}); | |
// Attach the event click for all links in the page | |
$("a").bind("click", function() { | |
validNavigation = true; | |
}); | |
// Attach the event submit for all forms in the page | |
$("form").bind("submit", function() { | |
validNavigation = true; | |
}); | |
// Attach the event click for all inputs in the page | |
$("input[type=submit]").bind("click", function() { | |
validNavigation = true; | |
}); | |
} | |
$(document).ready(wireUpEvents); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment