Since window.history.pushState is not aviliable for HTML 4 browsers like IE9 , I have looked for history.js, a jQuery library that simulates the pushState behavior.
Just remove window.location.pathname from History.pushState
History.pushState(null,null,'?page=1');
Your code does exactly what you'd expect it to.
window.location.pathname + '?page=1'
Prints out the location pathname (test.html), and appends ?page=1
Remove window.location.pathname and it should work.
Maybe try:
History.replaceState(null,null,'?issue=' + currPageIssueNo + '&page=' + pageNo);
You need to set up a client-side redirect for IE. Assuming the user lands at this page:
http://localhost/development/flipV5.html?issue=20121220&page=1
They need to be sent to
http://localhost/development/flipV5.html#?issue=20121220&page=1
The reason is that IE <= 9 doesn't let you modify anything before the hash, without sending the user to a new page. It's an old security feature preventing changing the URL to facebook.com, when you're really on spambook.com. Recently, people have realized that that's overkill.
The redirect looks like this:
<!--[if LTE IE 9]>
<script type="text/javascript">
if (location.search)
location.href = location.pathname + "#" + location.search;
</script>
<![endif]-->
You can now push states, and they won't show up in both the search and the hash (that's after the ? and # respectively)