Обращаясь к различным статьям и выполняя некоторые пробные и пробные проверки, я, наконец, разработал эту идею, которая отлично работает для меня.
Идея заключалась в обнаружении события разгрузки, которое запускается при закрытии браузера. В этом случае мышь выйдет из окна, указывая на кнопку закрытия («X»).
$(window).on('mouseover', (function () {
window.onbeforeunload = null;
}));
$(window).on('mouseout', (function () {
window.onbeforeunload = ConfirmLeave;
}));
function ConfirmLeave() {
return "";
}
var prevKey="";
$(document).keydown(function (e) {
if (e.key=="F5") {
window.onbeforeunload = ConfirmLeave;
}
else if (e.key.toUpperCase() == "W" && prevKey == "CONTROL") {
window.onbeforeunload = ConfirmLeave;
}
else if (e.key.toUpperCase() == "R" && prevKey == "CONTROL") {
window.onbeforeunload = ConfirmLeave;
}
else if (e.key.toUpperCase() == "F4" && (prevKey == "ALT" || prevKey == "CONTROL")) {
window.onbeforeunload = ConfirmLeave;
}
prevKey = e.key.toUpperCase();
});
Функция ConfirmLeave выдаст всплывающее сообщение по умолчанию, если есть любой необходимости настроить сообщение, а затем вернуть текст, который будет отображаться вместо пустой строки в функции ConfirmLeave () .