2012-01-23 21 views

risposta

78

Invece di usare window.location = url; per reindirizzare,

prova:

window.location.replace(url); 

dopo l'utilizzo di sostituire() la pagina corrente non verrà salvata in sessione storia, il che significa che l'utente non lo farà essere in grado di utilizzare il pulsante Indietro per navigare ad esso.

+1

Grazie ... stavo cercando questo. – Neeraj

+0

Funziona per le pagine che ho il controllo sul caricamento, ma per quanto riguarda le istanze in cui si desidera cancellare tutte le ricerche precedenti (siti diversi)? Sono pigro e non voglio gestire l'uscita dall'app Web intenzionalmente o di proposito utilizzando il pulsante Indietro. –

8

È possibile utilizzare location.replace per sostituire la voce della posizione corrente (la pagina di reindirizzamento) con quella nuova (la destinazione). Ciò richiede che si fa il reindirizzamento tramite JavaScript piuttosto che con meta tag o un 302. Es .:

// In the redirecting page 
location.replace("path/to/target/page"); 

Live example | Live example source

3

Per chiunque imbattersi in questa pagina e in cerca di un modo AngularJS per raggiungere questo obiettivo (piuttosto che javascript), l'uso del servizio di $ location metodo replace() (documentation):

Usa $location.url('/newpath'); o $location.path('/newpath'); come si normalmente farebbe il reindirizzamento in angolare. E poi aggiungi subito lo $location.replace();. Oppure puoi concatenare i comandi in questo modo:

$location.url('/newpath').replace(); 
Problemi correlati