一般在做 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值。
執行順序:先執行特殊操作,再執行共用操作。