Редактировать: я понял, что это может быть не совсем то, что вы просите, но я оставлю это на всякий случай, если это будет полезно для всех, кто ищет это. Также обратите внимание, что вы можете выполнять другие действия в событии onbeforeunload, которые, как правило, будут надежно выполняться до того, как пользователь получит доступ к диалоговому окну подтверждения, если ваша процедура выгрузки не слишком сложна (в этом случае вам все равно следует изменить конструкцию).
onbeforeunload позволяет прервать выгрузку страницы:
window.onbeforeunload = function(e) {
// Browser will pop up a confirmation dialog, with some text before
// and after your return string; try it in different browsers to
// see how they behave.
return 'String to confirm';
}