JS) 보는데 이상이 없는데 UTF-8 처리를 못하면? 타입이 UTF-8 BOM일수있다. JS에서 처리하려면 간단히 코드 한줄 넣어주면 된다. 웹에서 정보가 많이 없는건지 갈피를 못잡았었는데 UTF-8 BOM 과 UTF-8의 차이때문이었다. JSON.parse(str) 에서 str은 문제가 없는데 계속 오류가 떳었다. 찾아봐도 안나오다가 쉬고난 뒤 검토할부분을 검토하다가 발견했다. JS에서는 UTF-8 BOM을 UTF-8로 바꿔 처리하려면 if (str.charCodeAt(0) === 0xFEFF) { str = str.substr(1); } 이렇게 한줄을 써서 UTF-8 BOM을 UTF-8로 바꿔서 처리하면 된다.
썸네일 이미지
PHP) Windows GUI 프로그램(*.exe) 실행하기 오늘 안 내용인데 Apache 또는 Nginx 등의 서버가 service.msc(서비스 관리자)에 등록되어있으면 Windows의 보안정책상 GUI로 실행이 안된다. Apache2.4 서버를 서비스에서 사용안함으로 바꾸고 콘솔 앱으로 실행하고 php에서 hello.exe를 실행하면 그냥 실행한것과 동일하게 GUI로 실행이 된다.
JS window.location) hostname VS host window.location.hostname 과 window.location.host 의 차이를 알아보자. 주소가 https://hi098123.tistory.com/ 이라면? console.log(window.location.hostname); // hi098123.tistory.com console.log(window.location.host); // hi098123.tistory.com 어라? 동일하다? 만약에 주소가 https://hi098123.tistory.com:8088/ 라면? console.log(window.location.hostname); // hi098123.tistory.com console.log(window.location.host); // hi098123.tistory.co..
HTML) Referrer 관리하기 <meta name="referrer"> Referrer 이란? 웹에서 돌아다닐때, 이전방문 페이지이다. 이를 활용하여 자신의 홈페이지에서 접속요청인지, 다른 검색엔진을 통해 들어오는 경우인지, 어디 페이지에서 접속하는지 추적등을 할수가 있다. 근데 referrer정보를 제한하고 싶을때 Apache,Nginx 등에서 설정도 가능하지만 간단히 html 에 meta tag만으로 제한할 수 있다. 지원 브라우저 확인하기 : https://caniuse.com/mdn-html_elements_meta_name_referrer http referer 은 오타인 referrer을 그대로 사용중이다. 처음에 오타로 r을 뺐는데 이미 만들어진 표준을 지키기위해 http 헤더에는 r이 빠진 referer으로 사용된다. 활용 예 html페이지에서 링크를 눌러서 ..
Javascript) encodeURI, decodeURI, encodeURIComponent, decodeURIComponent Uri encode & decode 한글과 같은 데이터를 표기할때 사용되기도하고 데이터 송수신에 주로 사용된다. encodeURI encodeURI("A"); A encodeURI("한"); %ED%95%9C encodeURI("&"); & encodeURIComponent : 추가로 URI 구성 요소에도 적용 encodeURIComponent("A"); A encodeURIComponent("한"); %ED%95%9C encodeURIComponent("&"); %26 encodeURIComponent 가 더 넓은 범위이다. ; /? : @ & = $, # 와 같은 특수문자를 글자 취급하여 변환한다. decodeURI ; /? : @ & = $, # 와 같은 특수문자를 변환하지 못한다. 만약, http..
썸네일 이미지
티스토리) Light-TT-EX 제거하기 Light-TT-EX 란? 이미지 클릭시 새창으로 띄우는걸 막고 페이지내에서 보여주는 플러그인이다. 스킨에따라 끄고싶을수가 있다.. 하지만 문제가 하나 있다. 문제는? 사용안함으로 해도 무조건 사용할수밖에 없다. html 맨 위에 붙는 코드 (티스토리 사용 시 무조건 붙는다.) 티스토리에 설정 불가능한 설정들이 좀 있다.. body의 맨 아래에 제거코드를 넣는다. minify 버전 ... 소스는 아래와 같으며, 클릭시 흐려지기+화면 띄우기만 방지하는 코드이다 function del_lighttt(){ var s=document.getElementsByTagName("span") for (var i = 0; i < s.length; i++) { if(s[i].getAttribute("data-lightbo..
JS) Location.hash 와 URL의 #부분 처리 URL에서 #부분은 몇몇 상황에서 활용된다. 웹페이지 사용자에게 필요한 위치로 이동 (id를 이용) Callback 만약, 아래와 같이 만들면 ID가 menuul인 위치로 이동하게 된다. https://hi098123.tistory.com/#menuul location.hash를 이용하면 #을 포함한 뒷부분의 값을 알아낼 수 있다. var x = location.hash; console.log(x); // #menuul Callback 에서 https://url#token=abcdef123456789&expire=3600 와 같이 Callback을 주는경우 다음의 이벤트 리스너를 이용할수도 있다. addEventListener 의 hashchange function hashHandler() { conso..
extension) tabs.getSelected VS tabs.query tabs.getSelected 크롬 16 이후버전에서 공식적으로 제거된 기능입니다. 파이어폭스에서는 이용하실수 없습니다. 구버전기능이라고 보시면 됩니다. tabs.query //chrome chrome.tabs.query({ currentWindow: true, active: true }, function(tabs){ //code: ex) tabs[0].id }); //firefox browser.tabs.query({ currentWindow: true, active: true }, function(tabs){ //code: ex) tabs[0].id }); 크롬 16 에서 tabs.getSelected가 제거되고 생긴 기능 Parameters object queryInfo boolean (option..