Torna alla pagina precedente indipendentemente dalle modifiche nella stringa di query

Aug 17 2020

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

3 MauriceNino Aug 17 2020 at 15:36

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?