<script>

        var student = {

            이름: '아무개',

            국어: 92,

            수학: 89,

            영어: 96,

            과학: 98

        };


        // in 키워드(해당 Key 가 있는지 확인 return Boolean)

        var outPut = '';

        outPut += 'Student 에 \'이름\' Key 존재 : ' + ('이름' in student) + '\n';

        outPut += 'Student 에 \'성별\' Key 존재 : ' + ('성별' in student);

        alert(outPut);


        // with 키워드

        var outPut2 = '';

        with (student) {

            outPut2 += '이름 : ' + 이름 + '\n';

            outPut2 += '국어 : ' + 국어 + '\n';

            outPut2 += '수학 : ' + 수학 + '\n';

            outPut2 += '영어 : ' + 영어 + '\n';

            outPut2 += '과학 : ' + 과학 + '\n';

            outPut2 += '총점 : ' + (국어 + 수학 + 영어 + 과학);

        }

        alert(outPut2); 

    </script>


- in 키워드는 객체에 해당 Key 의 존재여부를 Boolean 값으로 return

- with 키워드는 객체['key'] 의 중복코드를 줄이기 위해

   with(Student){} 내에서는 객체명 없이 key 값만으로 데이타를 조작할수 있다.



- escape()

: 영문 알바펫, 숫자, 일부 특수문자를 제외한 모든 문자를 인코딩한다.

- encodeURI()

: escape() 함수에서 인터넷 주소에 사용되는 일부 특수문자는 변환하지 않는다.

- encodeURIComponent()

: 알파벳과 숫자를 제외한 모든문자를 인코딩한다. UTF-8 인코딩과 같다.


EX)

<script>

        // 인코딩, 디코딩 내장함수

        var URI = 'http://www.naver.com?searchVal=다니엘';


        // 출력

        var outPut = '';

        outPut += '★escape()\n';

        outPut += escape(URI) + '\n\n';

        outPut += '★encodeURI()\n';

        outPut += encodeURI(URI) + '\n\n';

        outPut += '★encodeURIComponent()\n';

        outPut += encodeURIComponent(URI) + '\n\n';


        alert(outPut);

</script>





window.open("연결할페이지", "창이름", "창속성")  

팝업창 속성들 

toolbar : 도구모음 표시할지 여부 - yes/no  
location : 주소 표시줄의 표시 여부 - yes/no  
status : 상태바 표시 여부 - yes/no  
menubar : 메뉴 표시줄의 표시 여부 - yes/no  
scrollbars : 스크롤바 표시 여부 - yes/no  
directories : 디렉토리바의 표시 여부 - yes/no  
resizable : 창 크기 조절 가능 여부 - yes/no  
height 창 : 높이 - 픽셀단위  
width : 창 너비 - 픽셀단위  

날자를 입력하는 폼을 사용할때(DatePicker) 이런걸 사용할때...

하루전/한달전/1년전 모 이런거 사용하자나 쉽게 자바스크립트로 계산하는 방법

오늘날짜 기준으로 특정날짜 계산


        /* 날짜계산 */

        var jsDateCalculation = function(date, term) {

            

            var selectDate = date.split("-");

            var changeDate = new Date();

            

            if( term == 'day' ) {

   // 하루전

                changeDate.setFullYear(selectDate[0], selectDate[1]-1, selectDate[2]-1);

            }

            if( term == 'week' ) {

               // 일주일전

                changeDate.setFullYear(selectDate[0], selectDate[1]-1, selectDate[2]-7);

            }

            if( term == 'month' ) {

                changeDate.setFullYear(selectDate[0], selectDate[1]-2, selectDate[2]);

            }

            if( term == 'year' ) {

               // 일년전

                changeDate.setFullYear(selectDate[0]-1, selectDate[1]-1, selectDate[2]);

            }

            

            var y = changeDate.getFullYear();

            var m = changeDate.getMonth() + 1;

            var d = changeDate.getDate();

            

            if(m < 10) { 

                m = "0" + m;

            }

            if(d < 10) {

                d = "0" + d;

            }

            var resultDate = y + "-" + m + "-" + d;

            return resultDate;

        };

지역변수와 관련이 있는 건데.. 우선

예제)

<script>

// 함수 선언

function text(name) {

var output = 'Hello' + name + '...!';

}

// 출력

alert(output);

</script>

 

위의 예제 함수안에 있는 변수는 지역변수 이므로, 함수 외부에서 사용할 수 없습니다.(alert)

지역변수는 함수가 실행될때 생성되고 함수가 종료될 때 사라진다. 하지만, 클로저란? 것을 사용하면 이 규칙을 위반할 수 있다.

 

예제)

<script>

// 함수선언

function outerFunction(name) {

var output = 'Hello' + name + '...!';

return function() {

return output;

}

}

// 변수선언

var first = outerFunction('JavaScript');

var second = outerFunction('jQuery');

// 출력

alert(first);

alert(second);

</script>

 

이걸 가능하게 하려고 클로저 함수 사용

- Function 만 기재한다. 나중에 봐도 이해가 되겟지...과연?

 

var jsCopyText = function() {
           
            var copyText = $('#acctList option:selected').text();
            var IE = (document.all) ? true : false;
           
            if(IE) {
                window.clipboardData.setData('Text', copyText);
                alert('클립보드에 복사되었습니다.');
            }
            else {
                temp = prompt('복사할 가상계좌입니다. Ctrl+C를 눌러 클립보드에 복사하세요.', copyText);
            }
           
        }

 

- 브라우저가 IE 일경우에는 window.clipboardData.setDate('setName', '클립보드에 복사할 문자');

   IE가 아니면 prompt 를 뛰어서 사용자가 복사할수 있도록 한다.

   위의 예제는 selectBox 의  text 값을 사용자가 쉽게 복사할수 있도록 하기위함이니. prompt 로 띄어서 복사하게 하는

   것 만으로도 충분하닥 생각한다..(변명이지요)

- 한글을 체크하는 함수

var koreanCharCheck = function(inputStr) {

for( var i = 0; inputStr.length; i++ ) {

var checkChar = inputStr.charCodeAt(i);

// 한글체크부분 하위 if 문에서 true 이면 한글이 포함되어 있는것이다.

if( (0xAC00 <= checkChar && checkChar <= 0xD7A3) || (0x3131 <= checkChar && checkChar <= 0x318E) ) {

alert('한글은 입력하실수 없습니다.');

return false;

}

}

}

 

- 한글입력을 막는 임의의 스크립트

jQuery( document ).ready( function(){

        var head = document.getElementsByTagName('head')[0];

        var nProtect = document.createElement('script');

        nProtect.type = 'text/javascript';

        nProtect.async = true;

        nProtect.src = 'https://supdate.nprotect.net/nprotect2007/keycrypt/arisu/npkfx.js';

        head.appendChild(nProtect);

});


실제 개발에 반영한 소스를 그대로 옮긴것. 참고해서 사용하면 될 듯

.ready() 되면 무조건 실행이 되고 있고, 상황 별로 하라면 .ready() 안에 있는 스크립트 내용을 function() 으로 만들고

.ready() 에서 분기별로 호출하는 식으로 변경하면 된다.


위에서는 nProtect.src 에서 호출한 .js 가 자동으로 브라우져체크해서 실행여부를 판단하므로, 나는 그냥 호출만 했다..

저건 키보드보안 모듈 설치하는거..;

 


- 자바스크립트 부분


        /* 숫자입력단위 콤마(",") & 입력값 숫자체크 */

    var SetComma = function(str) {

        var regMustNumberComma = /^[0-9|,]+$/;

        var regMustNoStartZero = /^[0]/;

        

        str = str.replace(/,/g,'');

        var retValue = "";

            for( i = 1; i <= str.length; i++ ) {

                if( i > 1 && (i%3) == 1 )

                    retValue = str.charAt(str.length - i) + "," + retValue;

                else

                    retValue = str.charAt(str.length - i) + retValue;

            }

            if( regMustNoStartZero.test(retValue) == true && window.event.keyCode != 9 ) {

                alert("입력숫자는 '0'으로 시작할 수 없습니다.");

                return "";

            }

            if( regMustNumberComma.test(retValue) == false ) {

                alert("숫자만 입력하실 수 있습니다.");

                return "";

            }

            return retValue;

    };



- 입력 폼

<input type="text" class="text" name="remvlPointer" size="20" onkeyup="this.value=SetComma(this.value)" value="${dataBean.remvlPointer}"/>



- 주의사항

입력폼에 사용자가 숫자를 입력할때 동적으로 천단위로 콤마를 찍어주고 DB에 INSERT 할때에는 콤마를 제거해주는 작업을 해주고 INSERT 해야한다. 까먹지마...

- 콤마제거하는 JAVA 단 메서드(Null 체크하는 Validator.isEmpty() 는 회사프레임워크 메서드다. )


    public static String getPureNumber(String inquireParam) {


        String returnStr = "";


        if( Validator.isEmpty(inquireParam) ) {

            returnStr = String.valueOf(StringUtil.ZERO);

        }

        else{

            inquireParam = inquireParam.replaceAll(",", "");

            returnStr = inquireParam;

        }

        return returnStr;

    }

- 디비에서 SELECT 해서 화면에 뿌려줄때는 또 콤마를 찍어야 되겟지?

    public static String getDecimalFormat(long inquireParam) {

        String returnStr = "";


        DecimalFormat format = new DecimalFormat("#,##0");

        returnStr = format.format(inquireParam);


        return returnStr;

    }


<%

    /* 사용자 IP */

    String userAddress = request.getRemoteAddr();

    /* 사용자 레퍼러(이전 페이지) */

    String userReferer = request.getHeader("referer");

%>


    <script type="text/javascript">

    $().ready(function() {

        

    /* 사용자 OS */

    var userOs = "";

   

        /* 브라우저 확인 */

        var Browser = { a : navigator.userAgent.toLowerCase() }

        var browserNm = "";

        var browserVr = "";

        

        if( Browser.a.indexOf('msie 6') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.6";

        }

        if( Browser.a.indexOf('msie 7') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.7";

        }

        /* IE8 부터는 msie 값으로 브라우저 버전을 분별할수 없음 trident 값으로 해야한다. */

        if( Browser.a.indexOf('trident/4.0') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.8";

        }

        if( Browser.a.indexOf('trident/5.0') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.9";

        }

        if( Browser.a.indexOf('trident/6.0') != -1 ) {

            browserNm = "Internet Explorer";

            browserVr = "v.10";

        }

        if( !!window.opera ) {

            browserNm = "opera";

            browserVr = "opera";

        }

        if( Browser.a.indexOf('safari') != -1 ) {

            browserNm = "safari";

            browserVr = "safari";

        }

        if( Browser.a.indexOf('applewebkit/5') != -1 ) {

            browserNm = "safari3";

            browserVr = "safari3";

        }

        if( Browser.a.indexOf('mac') != -1 ) {

            browserNm = "mac";

            browserVr = "mac";

        }

        if( Browser.a.indexOf('chrome') != -1 ) {

            browserNm = "chrome";

            browserVr = "chrome";

        }

        if( Browser.a.indexOf('firefox') != -1 ) {

            browserNm = "firefox";

            browserVr = "firefox";

        }

        

        /* 날짜구하기(년/월/일) */

        var date = new Date();

        var thisYear = date.getFullYear();

        var thisMonth = date.getMonth() + 1;

        var thisDate = date.getDate();

        /* 요일구하기 숫자(1:월, 2:화, 3:수, 4:목, 5:금, 6:토, 7:일) */

        var thisDay = date.getDay();

        /* 시간구하기(시/분/초) */

        var thisHours = date.getHours();

        var thisMinutes = date.getMinutes();

        var thisSeconds = date.getSeconds();

        

        /* ********** 날짜가 10월 이전이면 앞에 '0' 붙이기 ********** */

        if( thisMonth < 10 ) {

            thisMonth = "0" + thisMonth;

        }

        

        if( thisHours < 10 ) {

            thisHours = "0" + thisHours;

        }

        /* ********** 날짜가 10월 이전이면 앞에 '0' 붙이기 ********** */

        

  ※ JAVA 카테고리에서 실제서버(CentOS) 에서 

     System.getProperty("os,name"); 로 실패 후 자바 스크립트로 변경작업 내역임.

        /* ********** 사용자 시스템정보(OS) ********** */

        var ua = navigator.userAgent;

        alert("Client ua : " + ua);

        

        if( ua.indexOf("NT 5.0") != -1 ) {

        userOs = "Windows 2000";

        }

        else if( ua.indexOf("NT 5.1") != -1 ) {

        userOs = "Windows XP";

        }

        else if( ua.indexOf("NT 5.2") != -1 ) {

        userOs = "Windows Server 2003";

        }

        else if( ua.indexOf("NT 6.0") != -1 ) {

        userOs = "Windows Vista";

        }

        else if( ua.indexOf("NT 6.1") != -1 ) {

        userOs = "Windows 7 or Server 2008";

        }

        else if( ua.indexOf("NT 6.2") != -1 ) {

        userOs = "Windows 8 or Server 2012";

        }

        else if( ua.indexOf("98") != -1 ) {

        userOs = "Windows 98";

        }

        else if( ua.indexOf("95") != -1 ) {

        userOs = "Windows 95";

        }

        else if( ua.indexOf("Linux") != -1 ) {

        userOs = "Linux";

        }

        else if( ua.indexOf("Mac") != -1 ) {

        userOs = "mac";

        }

        else{

        userOs = "I Don't Know OS";

        }

        /* ********** 사용자 시스템정보(OS) ********** */

+ Recent posts