onclick="javascript:history.go(-1)" not working in Chrome
Asked Answered
S

9

28

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?

Shill answered 27/4, 2013 at 14:8 Comment(1)
javascript protocol is not neededDynamics
M
75

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>
Masonry answered 27/4, 2013 at 14:17 Comment(2)
thanks for the answer. i used history.back(); which in chrome made some nasty bugs :)Therefrom
Why create a link to a page (www.mypage.com) only to override it with an on-click event and do something other than redirecting the user to that page?Dichlorodifluoromethane
D
10

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>
Dissect answered 17/10, 2016 at 12:1 Comment(3)
It also worked for me, but it won't if the user accesses the page directly.Warmth
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 submitDestroy
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.Dissect
S
8

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

Strap answered 27/4, 2013 at 14:29 Comment(0)
D
7

Try this:

<a href="www.mypage.com" onclick="history.go(-1); return false;"> Link </a>
Dynamics answered 27/4, 2013 at 14:11 Comment(0)
E
3

Try this:

<button onclick="goBack()">Go Back 2 Pages</button>
<script>
function goBack() {
  window.history.go(-2);
}
</script>
Ecphonesis answered 3/4, 2015 at 16:32 Comment(0)
A
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>   
Allot answered 11/5, 2015 at 7:6 Comment(0)
A
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.
Azilian answered 12/7, 2017 at 13:18 Comment(0)
B
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>
Builtup answered 6/6, 2016 at 15:42 Comment(0)
D
0

Using a link with a URL to one page and having an on-click event that overrides it is not a good idea. What if the user opens the link in a new tab?

Consider:

<button id="back">Go back</button>
<script>
document.querySelector("#back").addEvenetListener("click", e => {
    history.go(-1);
});
</script>

Or if you must use a link, at least:

<a href="javascript:history.go(-1)">Go back</a>
Dichlorodifluoromethane answered 19/11, 2022 at 20:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.