Ajax保留浏览器历史的两种解决方案(Hash&Pjax)

看了这篇文章然后实现了,在一个页面内实现浏览器的回退操作,实际上就是给window.location加上锚点hash以达到欺骗浏览器,操纵历史记录的目的。

 Ajax保留浏览器历史的两种解决方案(Hash&Pjax)

 

在abc.html里分别显示,a,b,c三个内容块,即分别绑定不同的锚点(但不是说页面本身有这个锚点,锚点的Hash只是起到一个引导浏览器将这次的记录推入历史记录栈顶的作用。):

1 show(a);
2 window.location.hash = "#a";

3 show(b);
4 window.location.hash = "#b";

5 show(c);
6 window.location.hash = "#c";

 

根据你的需要判断当前的window.location.hash值来自由的回退到某个页面

 1 //当hashchange事件被触发时,判断锚点,回退到你想去得页面
 2 
 3 var hash = window.location.hash;
 4 
 5 window.addEventListener('hashchange', function() {
 6 
 7   if (hash == "#a") {
 8 
 9     ......
10 
11   } else if (...) {
12 
13     ......
14 
15     }
16 
17 });

 

 

 

 

posted @ 2015-05-14 01:04  luckymore  阅读(191)  评论(0)    收藏  举报