22019, 1/1101 회원가입  로그인  
   cd80
   http://cd80.tistory.com
   자바스크립트 쓸만한 함수 하나 만들었는데 공유하겠습니다~~

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=23528 [복사]


http://www.asdfasdf.com/#hash1=value1&hash2=value2
이런식으로 # 뒤에 있는걸 location.hash 라고 하는데요
그 hash를 set하고 get하는 함수를 만들어봤습니다
현재
http://leaveret.cafe24.com 에 적용해서 사용중입니다
오랜시간동안 계획을 하고 만든게 아닌 2~3시간만에 만든함수라 버그가 존재할수 있습니다
이메일이나 댓글로 피드백해주시면 감사하겠습니다

p.s. 나중에 사이트 제작완료하면 실제적인 피해를 입히지 않는선에서 모의해킹좀 부탁드립니다 ㅜㅜ
/* Set Hash */
function setHash(varName, value, cookiename, cookievalue){
        var hashArr = new Array();
        var foundHash = 0;
        if(parent.location.hash.indexOf(varName+"="+value) != -1)
                return 0;
        if(parent.location.hash.indexOf(varName) != -1){
                hashArr = parent.location.hash.split("&");
                for(var i=0;i<hashArr.length;i++){
                        if(hashArr[i].indexOf(varName) != -1){
                                hashArr[i] = varName+"="+value;
                        }
                        if(hashArr[i].length){
                                if(i==0)
                                        parent.location.hash=hashArr[i]+"&";
                                else
                                        parent.location.hash += hashArr[i]+"&";
                        }
                }
                hashchangebysetHash=1;
        }
}

/*  Get Hash */

function getHash(hash_name){
        if(!hash_name) return parent.location.hash;
        if(!paret.location.hash.length) return null;
        var i,x,y,ARRhases=parent.location.hash.split("#")[1];
        ARRhashes = ARRhashes.split("&");
        for (i=0;i<ARRhashes.length;i++){
                x=ARRhashes[i].substr(0,ARRhashes[i].indexOf("="));
                y=ARRhashes[i].substr(ARRhashes[i].indexOf("=")+1);
                x=x.replace(/^\s+|\s+$/g,"");
                if(x==hash_name){
                        return unescape(y);
                }
        }
}


getHash 는 구글검색에서 어떤분이 만들어두신 getCookie함수를 변수만 변형시켰습니다
유용하게 써주세요~ :)

  Hit : 9890     Date : 2012/04/01 06:23



    
cd80 p.s.2
데이터는 ?로 전달하는거랑 똑같이 param1=data1¶m2=data2¶m3=data3
이형식으로 전달합니다
setHash 에 cookie설정도 넣은이유는 제가 php에 hash값을 전달할때 cookie를 사용하기 때문입니다
저는 이방법밖에 못찾아서 이렇게 하긴했는데 더 좋은방법 있으신분들은 저부분만 수정하고하셔도 됩니다~~
2012/04/01  
cd80 ? para 이거 두개를 붙이니 이상한기호가되네요
다 para 입니다
2012/04/01