I am ajax-ifying the pagination in one of me projects and since I want the users to be able to bookmarks the current page, I am appending the page number via hash, say:
onclick="callPage(2); window.location.hash='p=2'; return false;"
and thats on the hyperlink
it works fine and everything, except, when the page number is 1, i dont want to URL
to be /products#p=1
, I just want it to be /products
I tried these variations:
window.location.hash=''
works but the url is now like /products#
and I dont quite the hash there./products#p=3
since I am not messing with the hash.<a href="#">
and he should use javascript:void(0)
instead. (had they never heard of Ajax?)So finally, I decided to make this thread, I found several similar threads here, but all the answers ls very similar to my second point.
so my big question still remains a question: How to kick the hash out of the URL and possibly out of the universe? (only for the first page!)
Updated Answer:
Best way to achieve this is to follow Homero Barbosa's answer below:
history.pushState("", document.title, window.location.pathname);
... or, if you want to maintain the search parameters:
history.pushState("", document.title, window.location.pathname + window.location.search);
Original Answer, do not use this, badwrongfun:
var loc = window.location.href,
index = loc.indexOf('#');
if (index > 0) {
window.location = loc.substring(0, index);
}
... but that refreshes the page for you which seems a trifle rude after just arriving there. Grin and bear it seems to be the best option.