由于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/