JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://www.asual.com/jquery/address/samples/state/jquery.address-1.5.min.js"></script>
<a class='next_page_link' href='/page2'>Page2</a>
<br>
<a class='next_page_link' href='/page3'>Page3</a>
<br>
<a class='article_title' href='/article7'>Article 7</a>
<br>
<a class='close_article' href='/page3'>Close Article</a>
JavaScript
var site_url = 'http://jsfiddle.net/',
last_visited_url = '',
just_visited_url = $.address.baseURL().replace(site_url, ''),
visited_pages_array = [just_visited_url],
page_number = '';
//when visiting new page: ajax call,then:
$('a.next_page_link').on('click', function (e) {
e.preventDefault();
last_visited_url = just_visited_url;
page_number = $(this).attr('href').replace(site_url, ''); // /page3 for example
$.address.state(site_url).value(page_number);
just_visited_url = page_number;
visited_pages_array.push(just_visited_url);
});
//when loading Article: ajax call,then:
$('a.article_title').on('click', function (e) {
e.preventDefault();
article_url = $('a.article_title').attr('href').replace(site_url, ''); // /article7 for example
last_visited_url = just_visited_url;
$.address.state(site_url).value(article_url);
just_visited_url = article_url;
visited_pages_array.push(just_visited_url);
});
//when existing an Article:
$('a.close_article').on('click', function (e) {
e.preventDefault();
last_visited_url = just_visited_url;
$.address.state(site_url).value(page_number); // This page number is the last page_number value
just_visited_url = page_number;
visited_pages_array.push(just_visited_url);
});
//And this code is executed when the user presses some of the browser butons:
$.address.externalChange(function () {
var newPage = $.address.baseURL().replace(site_url, '');
if (visited_pages_array[visited_pages_array.length - 2] == newPage) {
visited_pages_array.splice(visited_pages_array.length - 1, 1);
console.log('BACK pressed');
} else if (visited_pages_array.length > 1) {
visited_pages_array.push(newPage);
console.log('FORWARD pressed');
} else {
console.log('REFRESH pressed');
}
});