26

This code works fine in FF, it takes the user back to the previous page, but not in Chrome:

<a href="www.mypage.com" onclick="javascript:history.go(-1)"> Link </a>

What's the fix?

Jack P.
  • 11,417
  • 1
  • 28
  • 34
user961627
  • 11,879
  • 38
  • 130
  • 208

8 Answers8

73

You should use window.history and return a false so that the href is not navigated by the browser ( the default behavior ).

<a href="www.mypage.com" onclick="window.history.go(-1); return false;"> Link </a>
Mohit Padalia
  • 1,499
  • 12
  • 10
9

Use the below one, it's way better than the history.go(-1).

<a href="#" onclick="location.href = document.referrer; return false;"> Go TO Previous Page</a>
MarmiK
  • 5,440
  • 6
  • 37
  • 45
Majid Ali Khan
  • 621
  • 7
  • 12
  • 1
    It also worked for me, but it won't if the user accesses the page directly. – Pedro Lobito Oct 20 '18 at 17:11
  • If You're sending back to a form, history.go(-1) is a definite better because it returns to the form with most fields with the info they contained before submit – Samuel Ramzan Jan 15 '20 at 15:04
  • What you are saying is a valid point but if it was not working that's why this solution was proposed and of course, if we want to go back doesn't really mean that we also need the data we entered into the form, once we have submitted it it can be used with browsers automatically nonetheless. Thanks for the input. – Majid Ali Khan Jan 15 '20 at 15:09
7

Try this:

<a href="www.mypage.com" onclick="history.go(-1); return false;"> Link </a>
karaxuna
  • 26,302
  • 13
  • 78
  • 114
7

Why not get rid of the inline javascript and do something like this instead?

Inline javascript is considered bad practice as it is outdated.

Notes

Why use addEventListener?

addEventListener is the way to register an event listener as specified in W3C DOM. Its benefits are as follows:

It allows adding more than a single handler for an event. This is particularly useful for DHTML libraries or Mozilla extensions that need to work well even if other libraries/extensions are used. It gives you finer-grained control of the phase when the listener gets activated (capturing vs. bubbling) It works on any DOM element, not just HTML elements.

<a id="back" href="www.mypage.com"> Link </a>

document.getElementById("back").addEventListener("click", window.history.back, false);

On jsfiddle

Xotic750
  • 21,928
  • 8
  • 53
  • 76
3

Try this dude,

<button onclick="goBack()">Go Back 2 Pages</button>
<script>
  function goBack() {
    window.history.go(-2);
  }
</script>
Adi Inbar
  • 11,603
  • 13
  • 53
  • 68
1

javascript:history.go(-1);

was used in the older browser.IE6. For other browser compatibility try

window.history.go(-1);

where -1 represent the number of pages you want to go back (-1,-2...etc) and return false is required to prevent default event.

For example :

<a href="#" onclick="window.history.go(-1); return false;"> Link </a>   
Ricky
  • 125
  • 1
  • 8
Sumeet_Pol
  • 899
  • 7
  • 12
1

It worked for me. No problems on using javascript:history.go(-1) on Google Chrome.

  1. To use it, ensure that you should have history on that tab.
  2. Add javascript:history.go(-1) on the enter URL space.
  3. It shall work for a few seconds.
0

Use Simply this line code, there is no need to put anything in href attribute:

<a href="" onclick="window.history.go(-1)"> Go TO Previous Page</a>
Deepak Pandey
  • 1,262
  • 12
  • 20