TIMEX
TIMEX

Reputation: 272274

How to detect if the user clicked the "back" button

When the user goes history-back-1...how do I detect that? And then, alert "the user clicked back!"

Using binds (and jQuery preferably)

Upvotes: 25

Views: 86642

Answers (6)

estinamir
estinamir

Reputation: 503

hide loading onload or when using back button:

        jQuery(document).ready(function ($) {
            $.minicart.hideLoading();
        });
        window.addEventListener('load', function () {
            jQuery(document).ready(function ($) {
                $.minicart.hideLoading();
            });
        });
        window.onload = function () {
            $.minicart.hideLoading();
        }

Upvotes: 0

Saurabh Ahuja
Saurabh Ahuja

Reputation: 473

Following are the steps to detect back button click:

  1. Register a mouse down event on body $('body').on('mousedown', 'on all li');
  2. Now set a variable when mousedown event occur.
  3. Check this variable when your location changes.

IF variable changes to true it means list clicked otherwise back button.

This work in my use case. This solution may help others because it depends on app design.

Upvotes: 0

EricLaw
EricLaw

Reputation: 57115

You generally can't (browser security restriction). You can tell if the user navigates away from the page (onbeforeunload, onunload fire) but you can't tell where they went unless you've set up your page to allow it.

HTML5 introduces the HTML5 History API; in conforming browsers, the onpopstate event will fire if the user navigates back to an earlier "page" on your site.

Upvotes: 33

Miranda
Miranda

Reputation: 135

On the page you are looking at, you can add this piece of code to the onLoad event to move them back the page they were on.

if(history.length>0)history.go(+1)

If you want the alert then make it

if(history.length>0)alert("the user clicked back!")

Upvotes: -4

Mohsen Haeri
Mohsen Haeri

Reputation: 367

window.onpopstate=function()
{
  alert("Back/Forward clicked!");
}

Upvotes: 5

Adnan
Adnan

Reputation: 26360

try:

window.onbeforeunload = function (evt) {
  var message = 'Are you sure you want to leave?';
  if (typeof evt == 'undefined') {
    evt = window.event;
  }
  if (evt) {
    evt.returnValue = message;
  }
  return message;
}

Upvotes: 8

Related Questions