Javascript를 이용해 어떤 브라우저로 application에 접속했는지에 대한 정보를 확인할 수 있다. 이때 사용되는게 User-Agent이다. 개발자 도구에서도 확인해 볼 수 있다. 이런 User-Agent 정보를 이용해 Javascript에서는 클라이언트로부터 온 요청을 브라우저에 따라 처리할 수 있다. 그럼 일단 User-Agent 가 브라우저에 따라 어떤 모습인지 알아야 한다. browser User-Agent IE Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko Edge Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)..
XSS(Cross-site Scripting)는 서버단에서도 방어가 되어야 하지만 화면단에서도 방어가 필요하다. 다음과 같이 JavaScript 메소드를 활용함으로써 간단히 XSS 방어를 할 수 있다. function XSSCheck(str, level) { if (level == undefined || level == 0) { str = str.replace(/\|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,""); } else if (level != undefined && level == 1) { str = str.replace(/\/g, ">"); } return str; } XSS 방어를 적용해야 하는 문자열이 있다면 이것을 XSSCheck를 태워서 "" (빈 문자열)로 치환을 해주는 방식..
Eclipse에서 Java 파일들에 대해 JavaDoc을 생성하는 방법은 지난 포스팅에서 살펴보았다. 하지만 이건 말그대로 Java 파일들에 대해서 할 수 있다. JavaScript라서 혹시 되나 해봤는데 역시 안된다. 하지만 역시 이세계는 없는게 없다. JS 파일을 JSDoc으로 생성해주는 tookit이 있었고 사용법을 공유하고자 한다. Toolkit Download & Install Google Code Archive - Long-term storage for Google Code Project Hosting. code.google.com 위의 사이트에서 툴킷을 다운받을 수 있다. Windows, Linux, MacOS 관계없이 사용이 가능하다. 제일 위에 있는 파일을 받으면 된다. 설치파일을 받고 ..
자주 쓰이는 String prototype 에 대한 정리 (긁어모으기!) /** * 문자열 replaceAll */ String.prototype.replaceAll = function (target, replacement) { return this.split(target).join(replacement); }; /** * trim (공백 제거) */ String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); }; /** * ltrim */ String.prototype.ltrim = function() { return this.replace(/^\s+/, ""); }; /** * rtrim */ String.prototype...
라디오버튼(input type="radio") 을 핸들링 시 크롬에서는 정상동작하지만 IE에서는 비정상으로 동작하는 경우가 있다. 바로 다음과 같은 경우이다. .attr("checked", true); 이렇게 작성을 하면 IE에서는 정상동작하지 않는 경우가 있다. 이럴 경우에는 다음과 같이 조치해주면 된다. .prop("checked", true); 이 둘의 명확한 차이에 대해 잘 기술해 놓은 포스팅이 있어서 관심있는 사람은 참조하면 큰 도움이 될것이다. .prop(), .attr()의 차이 jQuery를 통해서 동적으로 화면 구성을 만들일이 많다. 그런 경우, selector를 통해 선택한 element나 append 하면서 새롭게 생성하는 element에 특정한 속성을 지정하게 되는 경우가 많은데 이..
javascript에서 window.open() 으로 popup을 띄울때 스크롤바가 생성이 되지 않는 현상이 있다. 물론 크롬에서는 문제 없이 잘 된다. 항상 이놈의 IE가 문제를 일으킨다. 문제가 발생한 원인은 IE에서는 스크롤바에 대한 옵션이 필수이기 때문이다. 따라서 window.open()에 스크롤바 옵션을 넣어주면 된다. window.open(abc.html, 'popup'); 위처럼 넣으면 크롬은 스크롤바 옵션에 대해 기본으로 설정을 하는 반면 IE는 그렇지 않다. window.open(abc.html, 'popup', 'scrollbars=yes'); 따라서 이렇게 변경을 해주거나 혹은 scrollbars=1 을 사용해도 된다.