由于window.history.pushState对像IE9这样的HTML 4浏览器不负责任,所以我查找了history.js,这是一个模拟pushState行为的jQuery库。
问题是,当使用pushState时,url的结尾是重复的
例如,

History.pushState(null,null,window.location.pathname + '?page=1');

回报,
http://www.development.com/test.html#test.html?page=1
如何避免这个问题?谢谢你。
更新(2012年1月22日),悬赏问题:
                if (pageNo == 1){
                    //window.history.pushState({"html":currURL,"pageTitle":''},"", window.location.pathname + '?page=1'); For chrome and FX only
                    //History.replaceState(null,null,'')
                    //History.pushState(null,null,'?issue=' + currPageIssueNo + '&page=1');
                }
                else if (pageNo != 1 || pageNo == 1 && linkPageNo > 1  ) {
                    History.pushState(null,null,'?issue=' + currPageIssueNo + '&page=' + pageNo);
                    //window.history.pushState({"html":currURL,"pageTitle":''},"", newURL);   For chrome and FX only
                }

如果是第一页的话,我仍然会遇到这个问题
http://localhost/development/flipV5.html?issue=20121220&page=1

当我转到IE9的第二页时,它有url:
http://localhost/development/flipV5.html?issue=20121220&page=1#flipV5.html?issue=20121220&page=2

我想实现的是
http://localhost/development/flipV5.html?issue=20121220&page=2

如果HTML4浏览器无法实现,请至少实现
http://localhost/development/flipV5.html/#?issue=20121220&page=2

谢谢你的帮助

最佳答案

你的代码正是你所期望的。

window.location.pathname + '?page=1'

打印出位置路径名(test.html),并附加?page=1
移除window.location.pathname,它应该可以工作。

关于javascript - 在IE9中使用history.pushstate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14342912/

10-11 03:07