Search code examples
javascripthtmlhtml5-history

Removing current page from browser history


I'm building a text editor in my website, the workflow is as follows.

  1. In /list, the user picks an entry they want to edit from a list which takes them to /edit/[article_id].
  2. The user does their work, and then clicks submit.
  3. The server processes the thing, and redirects them back to /edit/[article_id] which by now reflects the edited work. The server also activates a flash message on the page to indicate the edit was successful.

By this point, the user probably wants to go back to /list and clicks the browser's Back button. This will take them back to the editor repeatedly depending on how many times they submitted.

I've tried putting a Back button somewhere on the page, but a good many users simply ignore it.

I'd rather not make the submission posted via AJAX, since that would also affect the flash message system.

What I like to do, is replace the last entry on the history list when the user submits, without changing its length. Is it possible?


Solution

  • Try this

    window.location.replace(url);
    

    after using replace() the current page will not be saved in session history, meaning the user won't be able to use the Back button to navigate to it.