Sto cercando di gestire un form e vorrei capire se l'utente sta effettuando un refresh oppure se ha premuto il pulsante submit.
L'idea è questa: sia che si prema il pulsante submit, sia che si effettui il refresh della pagina, si scatena l'evento onbeforeunload, sapendo questo vorrei impostare una variabile js a false ed assegnargli true solo se si preme il submit, così so in che situazione mi trovo.
Un primo tentativo è questo
codice:
var change = false;
// questa è chiamata dalla pressione del submit al quale aggiungo
// onclick='funzione_js()'
function funzione_js()
{
change = true;
}
window.onbeforeunload = function() {
if ( ! change )
{
return 'Stai ricaricando la pagina, non si può!!!';
}
else
{
// qui vorrei metterci qualcosa che mi faccia saltare
// la visualizzazione della finestra
return true;
}
}
Il valore della variabile change cambia correttamente, ma il messaggio "Questa pagina richiede una conferma prima di poter uscire. I dati inseriti potrebbero non essere stati salvati." ed i pulsanti "Abbandona la pagina" e "Rimani su questa pagina" appaiono sempre e comunque.
Come faccio a far apparire tale finestra solo se change==false e saltarla se invece è true?
Inoltre, come si cambia il messaggio dato che appare sempre quello predefinito del browser e non quello che metto io nella funzione scritta prima?