[js] getElementsByClassName
jQuery 같은 프레임웍을 쓰지 않는다면 class name 으로 dom 셀렉팅을 할 수 없습니다.
지난번 javascript 스터디를 통해서 function 타입으로 제작하는 방법을 설명했었는데 조금 더 발전시켜 document 객체에 prototype으로 선언해 getElementById 와 같은 매서드의 형식으로 사용할 수 있도록 제작해봤습니다.
안타깝게도 Document 객체에 prototype 으로 선언하는 것이 IE 시리즈에선 허용되지 않아 아래와 같은 방식으로 우회했습니다.
테스트는 여기서 http://jsfiddle.net/rootbox/gtEkb/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | document.getElementsByClassName = function(name) { var obj = result = []; var n = name.split("."); var tag_name = null, class_name = null; if(n.length == 2) { tag_name = n[0]; class_name = n[1]; } else { tag_name = "*"; class_name = n[0]; } obj = document.getElementsByTagName(tag_name); for(var i in obj) { if(obj[i].className != class_name) continue; result.push(obj[i]); } return result; }; Element.prototype.getElementsByClassName = function(name) { var obj = result = []; var n = name.split("."); var tag_name = null, class_name = null; if(n.length == 2) { tag_name = n[0]; class_name = n[1]; } else { tag_name = "*"; class_name = n[0]; } obj = this.getElementsByTagName(tag_name); for(var i in obj) { if(obj[i].className != class_name) continue; result.push(obj[i]); } return result; }; console.log(document.getElementsByClassName("p.a")); console.log(document.getElementsByClassName("span.a")); console.log(document.getElementsByClassName("a")); console.log(document.getElementById("a").getElementsByClassName("span.a")); |
Consolas 폰트와 맑은고딕 맵핑
마땅한 코딩 폰트가 없어서 살펴보던 차에 MS Visual Studio 에서 기본 코딩 폰트로 사용하고 있는 Consolas 가 괜찮다는 생각이 들어 사용하려고 보니 VS 가 아닌 환경이라서 그런지 한글이 깨져 버리는 문제가 생겨 검색해보니 레지스트리를 고쳐 맵핑하는 방법이 있었더군요.
작업하는 환경마다 고치는게 귀찮아서 해당 부분만 발췌해서 파일로 저장했습니다.
※ 레지스트리를 조작하여 발생하는 문제는 전적으로 고갱님께 있습니다.
reg. download > http://repo.appspace.kr/rootbox.co.kr/consolas.7z
Apple Push Notification – 개발 등록과 인증서 발급
CSR 을 만들어서 인증을 받아야 하므로, Keychain Access 를 실행하고 Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority With "사용자계정이름"... 을 선택
이메일 주소와 이름을 입력하고 Save to Disk 선택 > 저장할 위치를 선택하고 저장
iOS Provisioning Portal > App IDs 에서 Apple Push Notification Service 를 활성화 > CSR 파일을 요구하면 윗 단계에서 만든 CSR 파일 선택 > APNS 가 활성화 되며 인증 파일을 Download 받을 수 있게 활성화 되는데 인증파일 다운로드 > 설치
Apple Development iOS Push Service Certificate 에서 오른쪽 버튼 클릭 > Export > apns-dev-cert.p12 로 저장
아래 key 파일도 위와 같은 방식으로 Export > apns-dev-key.p12 로 저장
터미널을 열고 pem 으로 Convert
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12 openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
push 발송을 할 때 마다 비밀번호 입력이 귀찮다면
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
처럼 추가로 만들어 주고, cert 과 key 파일을 합침
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
실제 배포용 인증서도 위와 같은 방식으로 만들면 됨.
