Come rilevare se l'utente ha cliccato il pulsante “indietro”
-
18-09-2019 - |
Domanda
Quando l'utente passa storia-back-1 ... come faccio a rilevare che? E poi, allerta "l'utente ha cliccato di nuovo!"
Uso lega (e jQuery preferibilmente)
Soluzione
In genere non si può (restrizione di sicurezza del browser). Si può dire se l'utente si sposta dalla pagina (onbeforeunload, onunload fuoco), ma non si può dire dove sono andati a meno che non hai impostato la tua pagina per consentire di esso.
HTML5 introduce l'API HTML5 Storia; nei browser conformi, il onpopstate evento verrà generato se l'utente si sposta di nuovo ad un "pagina" in precedenza sul tuo sito.
Altri suggerimenti
Prova:
window.onbeforeunload = function (evt) {
var message = 'Are you sure you want to leave?';
if (typeof evt == 'undefined') {
evt = window.event;
}
if (evt) {
evt.returnValue = message;
}
return message;
}
window.onpopstate=function()
{
alert("Back/Forward clicked!");
}
Di seguito sono riportati i passi per rilevare di nuovo scatto del tasto
-
Registra un evento di pressione mouse sul
$('body').on('mousedown' ,'on all li' );
corpo2.Now impostare una variabile quando si verificano eventi MouseDown.
3.Verificare questa variabile quando la posizione modifiche.
Se chages variabile su TRUE significa elenco cliked altrimenti BackButton
Questo lavoro nel mio caso d'uso .Questa soluzione può aiuta gli altri perché dipende dalla progettazione app
Nella pagina che si sta guardando, è possibile aggiungere questo pezzo di codice all'evento onLoad
per spostarli di nuovo nella pagina erano su.
if(history.length>0)history.go(+1)
Se si desidera che l'avviso quindi rendono
if(history.length>0)alert("the user clicked back!")