출처 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=74831

 

AJAX를 쓰면서 hash값으로 history 처리를 하는 과정중에 만들어 봤네요..
초보라 많이 부족합니다 ㅠㅠ


//해시 배열 url로 인코딩 120105 by ASRAHI
Array.prototype.encodeURL = function(){
var temp = new Array();
for(var i in this) if (this.hasOwnProperty(i)) temp.push(i+'='+this[i]);
var strURL = temp.join('&');
return '#'+strURL;
}

//해시 파싱 120105 by ASRAHI
String.prototype.paserHASH = function(){
if(this.indexOf('=') < 1) return false;
var splitData = this.substring(1).split('&');
var paser = new Array(splitData.length);
for(var i=0;i<splitData.length;i++) {
var spt = splitData[i].split('=');
paser[spt[0]] = spt[1];
}
return paser;
}


프로토타입으로 만들었구요..
사용법은

var arr = new Array();
arr = window.location.hash.paserHASH();

var strHash = arr.encodeURL();


<a href="#page=1">해시 링크</a>

이런식으로 href를 줘서 사용했습니다.

jQuery의 hashchange 플러그인을 통해 해시값이 변경될 때 처리를 해주었구요.
여러개의 파라미터값이 필요할 경우
a 태그의 click 이벤트를 먼저 가로채서 배열값에 추가해주고 다시 url 인코딩을 통해서
해시값을 줘서 사용했네요~

$("*").on("click",'a[href^="#"]',function(){
//여기서 처리~
});




참고로

encodeURL에선 배열의 key값을 어떻게 받는지 잘 몰라서 for( in ) 을 사용했는데
프로토타입의 메서드들도 몽땅 가져와 버리는 바람에 hasOwnProperty 를 이용해 걸렀구요.

paserHASH에선 paser = new Array(); 로만 처리했더니
정작 나중에 파싱해서 사용하는 배열의 length를 못구해서;; new Array(splitData.length) 를 통해 배열의 크기를 명시했습니다.

var arr = new Array();
arr = window.location.hash.paserHASH();
alert(arr.length); // 0을 뿌리더라구요;;;

번호 제목 글쓴이 날짜 조회 수
200 php로excel파일 생성하기 [33] 카츄샤 2012.02.02 22357
199 PHP리디렉션 방법 [2] 카츄샤 2012.02.01 20608
198 php중급강좌 > 이미지 리사이즈 처리를 위한 함수 만들기 [29] MYIP박광춘 2012.01.31 22044
197 php중급강좌 > 원본이미지를 정비율로 리사이즈 처리하기 [7] MYIP박광춘 2012.01.31 26137
196 php중급강좌 > 이미지 처리에 필요한 기본함수 만들기 [2] MYIP박광춘 2012.01.31 20956
195 php중급강좌 > 이미지 복사하기 [2] MYIP박광춘 2012.01.31 21364
194 php중급강좌 > 이미지관련 내장함수 image_type_to_extension, image_type_to_mime_type [1] MYIP박광춘 2012.01.31 17897
193 php중급강좌 > 이미지관련 내장함수 getimagesize [6] MYIP박광춘 2012.01.31 18901
192 사이트를 방문하는 클라이언트의 IP주소 가져오기 [187] 카츄샤 2012.01.30 25592
191 php로 사이트를 방문하는 유저의 OS를 판단하기 프로그램: [3] 카츄샤 2012.01.30 17368
190 웹소스코딩가이드 - 기초 [50] 이건 2012.01.26 20834
189 [IIS 7 초급 1-2] PHP 어플리케이션을 위한 IIS 웹 서비스 설치 및 구성 [197] file MYIP박광춘 2012.01.18 30127
188 [IIS 7 초급 1-1] Microsoft 웹 플랫폼 설치 관리자 [19] file MYIP박광춘 2012.01.17 20398
187 [문법] [초보] IP 중간에 모자이크 처리하기~ [4] 이건 2012.01.17 17642
186 [브라우저] 개발환경에서 브라우저가 스크립트 파일 캐시 못하게 하기. [1] MYIP박광춘 2012.01.16 17684
185 [기타] Zend Framework 환경설정파일과 데이터베이스 연결 [8] MYIP박광춘 2012.01.11 19866
184 [DBMS] WHERE 컬럼명 IN (3,1,2) 값의 순서대로 정렬 - ORDER BY FIELD(id, value) [3] MYIP박광춘 2012.01.10 12923
» [스크립트] url hash 값 파싱과 인코딩입니다. -펌 [14] MYIP박광춘 2012.01.09 13245
182 [xe팁]-외부페이지 직접접속 차단 및 다국어 설정팁 -펌 MYIP박광춘 2012.01.05 15679
181 [xe팁]-IE를 제외한 브라우저에서 첨부파일이 100%에서 사라지는 증세의 해결 [1] MYIP박광춘 2012.01.05 12793