2015-03-30 17 views
12

controllare o disabilitare browser pulsante Indietro con Javascript o AngularJScontrollare o disabilitare browser pulsante Indietro con Javascript o AngularJS

Qui non sto chiedendo una domanda, ma voglio mostrare una soluzione per come è possibile disattivare e indietro del browser di controllo pulsante se si utilizza AngularJS o anche con JavaScript

+0

Per la vostra parte angularjs, basta usare questo articolo http://stackoverflow.com/questions/15813850/detect-history-back-using-angular, ci sono un sacco di domande simili quindi non pubblicare immediatamente ... –

+0

@FerTo http://stackoverflow.com/help/self-answer –

risposta

14

Se sono solo utilizzando JavaScript è possibile verificare come è possibile disattivare il pulsante di retro da questo link:

http://jordanhollinger.com/2012/06/08/disable-the-back-button-using-html5/

Ma questo il codice sopra non funzionerà bene con AngularJS perché AngularJS utilizza URL_Hash # in background, quindi qui mostrerò come puoi girare:

Nel tuo codice Javascript principale (non all'interno del codice AngularJS o controler), inserisci il seguente codice :

// *** Author: Wael Sidawi 
// **** Deactive Back Button **** 
var history_api = typeof history.pushState !== 'undefined'; 
// history.pushState must be called out side of AngularJS Code 
if (history_api) history.pushState(null, '', '#StayHere'); // After the # you should write something, do not leave it empty 

E ora all'interno del vostro AngularJS Controler mettere la seguente listner evento:

/** 
* Event-Listner for Back-Button 
*/ 
$scope.$on('$locationChangeStart', function(event, next, current){    
    // Here you can take the control and call your own functions: 
    alert('Sorry ! Back Button is disabled'); 
    // Prevent the browser default action (Going back): 
    event.preventDefault();    
}); 

Spero che potrebbe aiutare.

migliori saluti

Wael

+0

Perché non usare $ location.replace()? – Musa

+1

@Wael, il codice sopra riportato funziona per disabilitare il pulsante Indietro. ma è anche disabilitando ng-href nella pagina di login – Hema

+0

@Hema. Disattiva purtroppo tutta la navigazione in angolare ... –

Problemi correlati