2010-08-30 11 views
5

Ho un client che ha appena ottenuto l'Apple Magic Mouse. Abbiamo creato un sito web di ricette e lei si arrabbia molto quando inserisce tutte le informazioni per la ricetta, poi usa il suo nuovo mouse e scorre accidentalmente verso destra e farà un Back Browse e tutte le sue informazioni andranno perse. Quindi lei vuole avvertire/pop-up per evitare che ciò accada in quella pagina.Prevenire un accidentale Indietro Sfoglia

Qualche suggerimento o punto a qualche JS che fa questo?

risposta

11

Questo è uno script di base "Avvisa prima di partire". Quando l'utente preme un tasto nella textarea, l'utente verrà avvisato se (s) che sta per lasciare la pagina:

<script type="text/javascript"> 
var changes = false; 
window.onbeforeunload = function(){ 
    if(changes){ 
     return "You're about to leave this page."; 
    } 
}; 
</script> 
<textarea onkeypress="window.changes=true">recipe here</textarea> 

In alternativa, è possibile memorizzare il contenuto del campo di testo in una variabile quando la pagina carica e confronta in seguito. Ciò porterà via una certa confusione quando il visitatore preme semplicemente i tasti freccia nella textarea senza realmente modificarlo.

+0

+1 questo è il modo in cui lo fa anche Gmail ecc. –

+0

Sì, se ci sono coraggiosi cervi che vengono colpiti usando questo codice legacy, WebKit (Google Chrome, Safari) non supporta prima di caricare con 'addEventListener'. – Lekensteyn

+0

L'unico modo affidabile è impostare onbeforeunload come una proprietà di window. Dal momento che dovrebbe esserci solo uno per ogni pagina, non c'è motivo per cui tu voglia utilizzare addEventListener comunque. –

0

Quindi lei vuole avvertire/pop-up per evitare che ciò accada in quella pagina.

È possibile collegare l'evento onBeforeUnload del browser e quindi mostrare un messaggio di conferma.

Problemi correlati