Не существует «закрытого» события, которое вы можете поймать в современных браузерах.
Существует onbeforeunload , но вы не можете много делать, когда он вызывается, особенно вы не можете предотвратить закрытие окна без согласия пользователя, и большинство удаленных операций не удастся, если вы попробуете их со страницы, которая закрывается.
Для всплывающего окна вы можете получить закрывающее событие и выполняйте длинные операции, но только в открывающемся окне:
var w = window.open('popup.html');
w.onbeforeunload = function(){
// set warning message
};
ВАЖНО: в последних версиях хром onbeforeunload
позволяет вам установить предупреждающее сообщение; вы не можете запускать дополнительную логику.
Просто используйте HTTPS для шифрования канала. Таким образом, вам не нужно беспокоиться о снифферах.