본문 바로가기

Script

티스토리 카테고리 매개변수 ?category 지우기

 

티스토리 카테고리 다른 글 보기를 이용할 경우,

url/?category=123456 와 같이 매개변수가 삽입.

<script type="text/javascript">
    //브라우저가 pushState가 지원되지 않는다면 사용하지 않도록 설정
    if(typeof(history.pushState) == 'function')
    {
    //현재 주소를 가져온다.
    var CatagoryURL = location.href;

    //게시글 중 매개변수 category가 붙으면 없애버린다.
    CatagoryURL = CatagoryURL.replace(/\?category=(<0-9>+)/ig,'');

    //페이지 새로 고침 없이 갱신
    history.pushState(null, null, CatagoryURL);
     }
</script>

스크립트를 추가해주면

https://tooltip.tistory.com/44?category=931656

https://tooltip.tistory.com/44

로 변경된다.

 

뒤로 가기 오류시

pushState -> replaceState 로 수정하면 url/?category=123456 숫자로 이동하는게 아니고 url/?category 로 바로 이동된다.

<script type="text/javascript">
    if(typeof(history.replaceState) == 'function')
    {
    //현재 주소를 가져온다.
    var CatagoryURL = location.href;

    //게시글 중 매개변수 category가 붙으면 없애버린다.
    CatagoryURL = CatagoryURL.replace(/\?category=(<0-9>+)/ig,'');

    //페이지 새로 고침 없이 갱신하고 저장하지 않는다 
    history.replaceState(null, null, CatagoryURL);
     }
</script>



조금 더 쉽고 편한 방법.

이 방법은 위와 같이 ?category=931656 페이지를 이동했다 경로를 제거하는게 아니라 카테고리 목록을 클릭할때 부터 경로가 ?category=931656 없이 글 번호, 혹은 글 entry 이름으로 바로 보임.

function replaceLink() {
    var aLink = $('#main__content ul a');
    for(var i=0;i<aLink.length;i++) {
        if(aLink.eq(i).attr('href')) {
            aLink.eq(i).attr('href',aLink.eq(i).attr('href').split("?category=")[0]);
        }
    }
}
$(document).ready(function() {
    replaceLink();
});

var aLink = $('#main__content ul a'); 부분에서 #main__content 은 카테고리 페이지에서만 동작되도록 함, 귀찮으면 var aLink = $('a'); 전체 하이퍼링크를 지정해도 됨

 

적용된 모습 ^^