Hash태그를 이용하여 ajax페이지에서 뒤로가기 구현하기



<script type="text/javascript">

var agent = navigator.userAgent.toLowerCase();    //브라우저에 따라 한글 해시 인코딩 필요성 체크하기 위함


//해시태그 변경될때 메소드

$(window).bind('hashchange', function() {

get_list(Page, PageSize);     

});


//해쉬태그 세팅 가져오기

function fnGetHash() {

if (document.location.hash != ""){     //받아올 해시가 있으면

var arrHash = new Array();

var hash = ""

if (agent.indexOf("chrome") != -1){     //크롬,사파리의 경우 한글해시를 인코딩한다.

hash = decodeURIComponent(document.location.hash);

}else if (agent.indexOf("safari") != -1){

hash = decodeURIComponent(document.location.hash);

}else{

hash = document.location.hash;

}


arrHash = hash.split("#");


if (arrHash[1]) Page = arrHash[1];

if (arrHash[2]){ sub_kbn = arrHash[2]; $('#sub_kbn').val(sub_kbn); } else { sub_kbn = ''; }

if (arrHash[3]){ cls = arrHash[3]; $('#cls').val(cls); } else { cls = ''; }

if (arrHash[4]){ searchkey = arrHash[4]; $('#searchkey').val(searchkey); } else { searchkey = ''; }

if (arrHash[5]){ searchword = arrHash[5]; $('#searchword').val(searchword); } else { searchword = ""; }

}

}


//해시태그 세팅하기

function fnSetHash(page) {

var hash = "#" + page;

hash += "#" + $("#sub_kbn option:selected").val() + "#" + $("#cls option:selected").val();


if ($("#searchword").val() != ""){

if (agent.indexOf("chrome") != -1){     //크롬,사파리의 경우 인코딩된 해시를 다시 원복한다.

hash += "#" + $("#searchkey option:selected").val() + "#" + $("#searchword").val();

}else if (agent.indexOf("safari") != -1){

hash += "#" + encodeURIComponent("#" + $("#searchkey option:selected").val() + "#" + $("#searchword").val());

}else{

hash += "#" + $("#searchkey option:selected").val() + "#" + $("#searchword").val();

}

}


//필요에 따라 해시정보를 저장

var obj = document.frmAction;

frmAction.hashInfo.value = hash;


//인터넷 url에 해시정보를 붙인다.

window.location.hash = hash;


}


</script>

Posted by kunoo
,