Difference between window.location.assign() and window.location.replace()

Javascriptwindow.location

Javascript Problem Overview


What is the difference between window.location.assign() and window.location.replace(), when both redirect to a new page?

Javascript Solutions


Solution 1 - Javascript

Using window.location.assign("url") will just cause a new document to load. Using window.location.replace("url") will replace the current document and replace the current History with that URL making it so you can't go back to the previous document loaded.

Reference: http://www.exforsys.com/tutorials/javascript/javascript-location-object.html

Solution 2 - Javascript

The difference is how history is handled. "Replace" won't give you history, "assign" will.

Solution 3 - Javascript

According to MDN:

> The difference from the assign() method is that 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.

Solution 4 - Javascript

  1. location.assign():

To assign route path by passing path into it. Assign will give you a history even after path was assigned.

Usage Method: Value should be passed into it.

Eg: location.assign("http://google.com")

location.assign()

  1. location.replace():

It helps to replace path if you don't want to keep history. It won't give you a history once you replace its path.

Usage Method: Value should be passed into it.

Eg: location.replace("http://google.com")

location.repalce()

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBakudanView Question on Stackoverflow
Solution 1 - JavascriptRedAnthraxView Answer on Stackoverflow
Solution 2 - JavascriptmartonaView Answer on Stackoverflow
Solution 3 - JavascriptMatt BallView Answer on Stackoverflow
Solution 4 - JavascriptMohideen bin MohammedView Answer on Stackoverflow