JSFiddle - React, Tailwind, and code Playground
by Renilson Meneguci
JavaScript
(function ($) {
var refreshKeyPressed = false;
var modifierPressed = false;
var f5key = 116;
var rkey = 82;
var modkey = [17, 224, 91, 93];
//Verifica se submit
var submitting = false;
$('form').submit(function (e) {
submitting = true;
});
// verifica as chaves de atualização
$(document).bind(
'keydown',
function (evt) {
// busca por atualização
if (evt.which == f5key || window.modifierPressed && evt.which == rkey) {
refreshKeyPressed = true;
}
// checa se há modificação
if (modkey.indexOf(evt.which) >= 0) {
modifierPressed = true;
}
}
);
// verifica as chaves de atualização
$(document).bind(
'keyup',
function (evt) {
// verifica a chave
if (evt.which == f5key || evt.which == rkey) {
refreshKeyPressed = false;
}
// checa se há modificação
if (modkey.indexOf(evt.which) >= 0) {
modifierPressed = false;
}
}
);
$(window).bind('beforeunload', function (event) {
var message = "not refreshed";
//submit é falso, realiza ação
if (!submitting) {
//Se atualizou entra aqui
if (refreshKeyPressed) {
message = "refreshed";
//retorna a mensagem apenas para testes
event.returnValue = message;
return message;
}
//Senão, chama a action
//$.ajax({
// url: BASE_URL + 'Testes/Aqui',
// type: 'POST'
//});
event.returnValue = message;
...