Torna alla pagina precedente indipendentemente dalle modifiche nella stringa di query
Ho una pagina con una tabella ricercabile. Ho scritto un pulsante "Indietro" per tornare alla pagina precedente:
<a href="javascript:history.back()">Back</a>
Ad esempio, l'URL della mia home page è:
https://xxxxxx.com
Entro nella pagina con una tabella ricercabile dalla mia homepage (o qualsiasi altra pagina) :
https://xxxxxx.com/data
Quando preformo una ricerca, l'URL diventa:
https://xxxxxx.com/data?search=*sth*
Quando premo il pulsante "Indietro", l'URL diventa:
https://xxxxxx.com/data
Quello che voglio veramente è:
https://xxxxxx.com/
(O la pagina in cui l'utente entra prima /data
)
Come posso riscrivere il mio javascript sul pulsante di ricerca, in modo che il pulsante Indietro possa arrivare alla pagina effettiva?
Risposte
Invece di history.back()
, che va indietro solo di uno, potresti fare window.location.replace(window.location.host)
, che carica la pagina principale.
Per avere maggiori informazioni su window.location
:https://developer.mozilla.org/en-US/docs/Web/API/Window/location
Modificare:
Se desideri ignorare i parametri URL, devi modificare il modo in cui vai a un'altra pagina.
Invece di window.history.pushState(...)
, dovresti usare window.history.replaceState(...)
, quando la navigazione dovrebbe essere ignorata con un clic indietro.
Qui c'è altro da leggere su questo argomento: Qual è il compromesso tra la spinta alla storia e la sostituzione?