2016-04-06 13 views
7

Ho bisogno di ottenere l'url precedente per reindirizzare alla pagina precedente. Ho url come www.mysite.com/users/register/#1.Come ottenere l'url precedente incluso il frammento hash utilizzando JavaScript?

Io uso document.referrer per ottenere l'url precedente, ma non restituisce hash parte (#1). Come ottenere l'url precedente compresa la parte hash?

+1

Ed è proprio all'interno del tuo dominio, senza referenti di origini croce? Potresti forse memorizzare l'url precedente nella memoria locale o un cookie? – adeneo

+2

Si tratta solo di referral all'interno del tuo sito? O da un'origine diversa? –

+3

Hai guardato a window.history? – MichaelK

risposta

1

prova per url precedente,

function backtopage() { 

    window.history.back(); 
} 
+0

La risposta originale era completamente sbagliata. La risposta aggiornata duplica solo una piccola parte della mia risposta. –

+0

@ T.J. Crouder sì, accetto i ringraziamenti. –

6

Come arrivare precedente url tra cui hash frammento utilizzando Javascript?

Come si è notato, la parte relativa al frammento di hash significa che non è possibile utilizzare document.referrer.

Se la pagina precedente era della stessa origine: Avresti bisogno di avere il codice su quella pagina registrando l'intero URL, ad esempio in sessionStorage.

Nella pagina precedente, forse ogni volta hashChange è sparato:

sessionStorage.setItem("last-url", location); 

Nella nuova pagina, per ottenere l'URL:

var lastUrl = sessionStorage.getItem("last-url"); 

Se la pagina precedente era su una diversa origine: Sono abbastanza sicuro che non puoi.

Ho bisogno di ottenere l'url precedente per reindirizzare alla pagina precedente.

In realtà, non è così. Puoi farlo solo a use history.go(-1) or history.back(), che funziona indipendentemente dall'origine della pagina precedente.

1

Può essere possibile utilizzare l'evento onhashchange. Quando url è cambiato, produce un evento con vecchio url e nuovo url. L'OLDURL ha anche la parte hash

0
$(window).bind('statechange',function(){ 
    // Prepare Variables 
    var State = History.getState(), 
     url = State.url, 
     states = History.savedStates, 
     prevUrlIndex = states.length - 2, 
     prevUrl = states[prevUrlIndex].hash; 
}); 
-1

Try this one:: 
 

 
In previous page url: 
 
www.mysite.com/users/register/#1 
 

 
In Current Page: 
 
$(document).ready(function() { 
 
    var referrerUrl = document.referrer.replace("#","e"); 
 
    var correctUrl=referrerUrl.replace("e","#"); 
 
});

+1

Come dice chiaramente la domanda: 'document.referrer' non include il frammento hash. –

Problemi correlati