Posted in Javascript onJune 12, 2014
一般在做 ajax load 的时候,很多人都不会考虑到需要浏览器支持前进后退功能,因为大部分人都不知道可以实现。
最近遇到这个问题,经过一小段研究,发现github已经有现成的开源工具使用,主要实现原理是利用html的锚点,即<a href="#xxx">
主要demo代码如下:
html
<ul> <li><a href="#ttt">ttttttttttttttt</a></li> <li><a href="#aaa">aaaaaaaaaaaaaaa</a></li> <li><a href="#bbb">bbbbbbbbbbbbbbb</a></li> <li><a href="#eee">eeeeeeeeeeeeeee</a></li> <li><a href="#mmm">mmmmmmmmmmmmmmm</a></li> </ul> <div id="showdiv" style="width: 500px; height: 500px; border: 1px groove #e3e7ea;">default content</div>
js
<script type="text/javascript"> $(function() { // 这里是共用的位置,通过state参数做操作 $.History.bind(function(state){ $('#showdiv').load('action/'+state+'.html'); }); // 这里是对某个链接做特殊操作 $.History.bind('bbb',function(state){ alert('点击了 bbb 链接,这是对 bbb 链接特殊处理位置'); }); }); </script>
相关问题:
state 参数:即超链接标签href="#xxx"中的xxx值。
执行顺序:先执行特殊操作,再执行共用操作。
如何让浏览器支持jquery ajax load 前进、后退功能
- Author -
whsnow声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@