function

util.js

function catchEvent(eventObj, event, eventHandler) {

if (eventObj.addEventListener) {

eventObj.addEventListener(event, eventHandler,false);

} else if (eventObj.attachEvent) {

event = "on" + event;

eventObj.attachEvent(event, eventHandler);

}

}

function cancelEvent(event) {

if (event.preventDefault) {

event.preventDefault();

event.stopPropagation();

} else {

event.returnValue = false;

event.cancelBubble = true;

}

}


functiondemo.html

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> Function Demo </title>

        <script src="js/util.js"></script>

        <script>

            catchEvent(window, "load", setup);

            function setup(){

                catchEvent(document.getElementById('btnCalc'), "click", myclick);

            }

            function myclick(){

                var a = document.getElementById("first").value;

                var b = document.getElementById("second").value;

                document.getElementById('result').innerHTML = a + b;

            }

        </script>

    </head>

    <body>

        <input type="number" id="first"> + 

        <input type="number" id="second"> = 

        <span id="result"></span>

        <input type="button" value="계산하기" id="btnCalc">

    </body>

</html>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

select : 드롭다운

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script src="js/util.js"></script>

        <script>

            catchEvent(window, "load", setup);

            function setup(theEvent){

                catchEvent(document.getElementById('btnSubmit'), "click", myfun);

            }

            function myfun(theEvent){

                var editors = document.getElementById('editors');

                var idx = editors.selectedIndex;

                alert(editors.options[idx].value);  //선택한 옵션의 값.

            }

        </script>

    </head>

    <body>

        <form>

            <p><label for="editors">당신은 다음 중 주로 어느 에디터를 사용하십니까?</label></p>

            <p><select id="editors" name="editors">

                    <option value="none">--선택--</option>

                    <option value="메모장">메모장</option>

                    <option value="Editplus">Editplus</option>

                    <option value="Notepad++">Notepad++</option>

                    <option value="Sublime">Sublime</option>

                    <option value="Eclipse">Eclipse</option>

            </select></p>

            <p><input type="button" value="전송" id="btnSubmit"></p>

        </form>

    </body>

</html>

여기서 <select id="editors" name="editors" multiple size="6"> 로 바꿔주면 여러개 선택가능하고 한번에 보여주는 개수가 6개로 한다는 뜻.

위처럼 바꾼다면 출력부분도  아래와 같이 바꿔주면 된다.

                var str = "";

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

                    if(editors.options[i].selected) str += editors.options[i].value + ","; 

                }

                str = str.substring(0, str.length - 1);  //마지막 , 를 뺴주기 위함.

                alert("귀하가 선택하신 에디터는 \n" + str + "\n입니다.");

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

checkbox , radiobx  

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> Checkbox, Radio </title>

        <script src="js/util.js"></script>

        <script>

            catchEvent(window, "load", setup);

            function setup(theEvent){

                catchEvent(document.getElementById('male'), "click", genderCheck);

                catchEvent(document.getElementById('female'), "click", genderCheck);

                catchEvent(document.getElementById('btnHobby'), "click", hobbyClick);

            }

            function hobbyClick(theEvent){

                var str = "";

                for(var i = 0 ; i < document.forms[0].hobby.length ; i++){

                    if(document.forms[0].hobby[i].checked) 

                        str += document.forms[0].hobby[i].value + ","; 

                }

                str = str.substring(0, str.length - 1);

                alert("귀하가 선택하신 취미는 \n" + str + "\n이군요...");

            }

            function genderCheck(theEvent){

                alert(theEvent.target.value);

            }

        </script>

    </head>

    <body>

        <form>

            <fieldset>

                <legend>성별</legend>

                <p><input type="radio" id="male" name="gender" value="남자">

                      <label for="male">남자</label>&nbsp;&nbsp;

                      <input type="radio" id="female" name="gender" value="여자">

                      <label for="female">여자</label>

                </p>

            </fieldset>

            <fieldset>

                <legend>취미</legend>

                <p>

                    <input type="checkbox" name="hobby" value="낚시">낚시&nbsp;&nbsp;

                    <input type="checkbox" name="hobby" value="등산">등산&nbsp;&nbsp;

                    <input type="checkbox" name="hobby" value="독서">독서&nbsp;&nbsp;                                    

                </p>

                <p>

                    <input type="checkbox" name="hobby" value="음악감상">음악감상&nbsp;&nbsp;

                    <input type="checkbox" name="hobby" value="게임">게임&nbsp;&nbsp;

                    <input type="checkbox" name="hobby" value="코딩">코딩&nbsp;&nbsp;                                    

                </p>

                <input type="button" value="취미선택" id="btnHobby">

            </fieldset>

        </form>

    </body>

</html>

//checkbox는 각각에 이벤트를 달기보다 버튼하나로 묶어주는 것이 좋다.(여러개가 선택될 수 있으므로)

//this.value 해도 선택된 라벨의 value를 얻어올 수 있다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

개인정보 입력 (주민등록번호, 성별, 생년월일 등) (radiobox, checkbox, keyup, substr, charAt 등 사용)

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script>

            window.addEventListener("load", setup, false);

            function setup(evt){

                //document.forms[0].elements[8].addEventListener("click", myclick, false);

                document.forms[0].elements[4].addEventListener("change", mychange, false);  //이름을 안쓰고 elements의 몇번째 인지로 접근 하는 방법

                document.forms[0].elements[4].addEventListener("keyup", keyup, false);   //키보드를 눌렀다 떨어질 때 이벤트발생.

                document.forms[0].elements[5].addEventListener("keyup", keyup1, false);

            }

            function keyup1(evt){

                if(this.value.length == 7) {

                    var str = "";

                    document.forms[0].elements[6].focus();

                    if(this.value.charAt(0) == '1' || this.value.charAt(0) == '3'){

                        document.forms[0].elements[1].checked = true;

                    }else if(this.value.charAt(0) == '2' || this.value.charAt(0) == '4'){

                        document.forms[0].elements[2].checked = true;

                    }

                    //주민번호 입력하면 자동으로 생년월일과 성별 자동입력되게

                    var jumin1 = document.forms[0].elements[4].value;

                    if(this.value.charAt(0) == 1 || this.value.charAt(0) == 2) str += "19";

                    else str +="20";

                    str += jumin1.substr(0,2) + "-" + jumin1.substr(2,2) + "-" + jumin1.substr(4,2);

                    document.forms[0].elements[3].value = str;   

                    //alert(str);                 

                }

            }

            function keyup(evt){

                var jumin1 = this.value;

                if(jumin1.length == 6) document.forms[0].elements[5].focus();  //주민번호 앞자리 6자리를 다 썼을때 뒷자리로 자동이동.

            }

            function mychange(evt){

                var jumin1 = evt.target.value;

                if(jumin1.length != 6 || !jumin1){

                    alert("첫번째 주민번호의 값이 없거나 형식에 일치하지 않습니다.");

                    document.forms[0].elements[4].focus();

                    return false;

                }

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

                    if(isNaN(jumin1.charAt(i))) {

                        alert("숫자를 넣으세요.");

                        document.forms[0].elements[4].focus();

                        return false;

                    }

                }

                //alert(jumin1);

            }

            function myclick(evt){

                //alert(document.forms[0].elements[1].value);

                alert(document.forms[0].elements[3].value);

            }

        </script>

    </head>

    <body>

        <form>

            <fieldset>

                <legend>개인정보</legend>

                <p><label>성별</label>

                    <input type="radio" id="male" name="gender" value="남자">

                    <label for="male">남자</label>&nbsp;&nbsp;

                    <input type="radio" id="female" name="gender" value="여자">

                    <label for="female">여자</label>

                </p>

                <p><label>생년월일 : <input type="date"></label></p>

                <p><label>주민번호 : </label>

                    <input type="text" maxlength="6" name="jumin1" size="8"> - 

                    <input type="text" maxlength="7" name="jumin2" size="8">

                </p>

                <p><label>휴대전화 : </label>

                    <select name="hp1">

                        <option value="010">010</option>

                        <option value="011">011</option>

                        <option value="016">016</option>

                        <option value="017">017</option>

                        <option value="019">019</option>

                    </select> - 

                    <input type="tel" name="hp2" placeholder="1234-5678">                    

                </p>

                <p><input type="button" value="입력완료" name="btn"></p>

            </fieldset>

        </form>

    </body>

</html>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

evt.target.innerHTML , getElementsByTagName 사용

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script>

            window.addEventListener("load", setup, false);

            function setup(evt){

                var Ps = document.getElementsByTagName("p");

                Ps[0].addEventListener("click", myOpen, false);

                Ps[1].addEventListener("click", myOpen, false);

            }

            function myOpen(evt){

                var url = "";

                switch(evt.target.innerHTML){

                    case "네이버" : url = "http://www.naver.com"; break;

                    case "구글": url = "https://www.google.com"; break;

                }

                //순서는  주소, 창이름, 옵션

                window.open(url, "w", 

                "left=400, top =200, width=500, height=400, toolbar=1, menubar=yes, location=0, resizable=0, scrollbars=1, status=yes");

            }

        </script>

    </head>

    <body>

        <p>네이버</p>

        <p>구글</p>

    </body>

</html>

-------------------------------

위코드에서 닫기 추가

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script>

            window.addEventListener("load", setup, false);

            var w;

            function setup(evt){

                var Ps = document.getElementsByTagName("p");

                Ps[0].addEventListener("click", myOpen, false);

                Ps[1].addEventListener("click", myClose, false);

            }

            function myClose(evt){

                w.close();

            }

            function myOpen(evt){

                w = window.open("http://www.naver.com", "w", 

                "left=400, top =200, width=500, height=400, menubar=yes, location=0, resizable=0, scrollbars=1, status=yes");

            }

        </script>

    </head>

    <body>

        <p>네이버열기</p>

        <p>닫기</p>

    </body>

</html>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

위 개인정보 소스를 새창으로 띄어 입력된 값 읽어오는 소스

windowdemo2.html

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script>

            window.addEventListener("load", setup, false);

            var w;

            function setup(evt){

                var btn = document.getElementById("btn");

                btn.addEventListener("click", myOpen, false);

            }

            function myOpen(evt){

                window.open("formdemo1.html", "w", 

                "left=400, top =200, width=600, height=400, menubar=yes, location=0, resizable=0, scrollbars=1, status=yes");

            }

        </script>

    </head>

    <body>

        <h1>회원정보</h1>

        <ol>

            <li>성별 : <span id="gender"></span></li>

            <li>생년월일 : <span id="birthday"></span></li>

            <li>주민번호 : <span id="jumin"></span></li>

            <li>휴대전화번호 : <span id="hp"></span></li>

        </ol>

        <input type="button" value="회원정보입력하기" id="btn">

    </body>

</html>


formdemo1.html

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script>

            window.addEventListener("load", setup, false);

            function setup(evt){

                document.getElementById('myclosebtn').addEventListener("click", myClose, false);

                document.getElementById("jumin1").addEventListener("keyup", keyup, false);

                document.getElementById("jumin2").addEventListener("keyup", keyup1, false);

            }

            function keyup1(evt){

                if(this.value.length == 7) {

                    var str = "";

                    document.forms[0].elements[6].focus();

                    if(this.value.charAt(0) == '1' || this.value.charAt(0) == '3'){

                        document.forms[0].elements[1].checked = true;

                    }else if(this.value.charAt(0) == '2' || this.value.charAt(0) == '4'){

                        document.forms[0].elements[2].checked = true;

                    }

                    var jumin1 = document.forms[0].elements[4].value;

                    if(this.value.charAt(0) == 1 || this.value.charAt(0) == 2) str += "19";

                    else str +="20";

                    str += jumin1.substr(0,2) + "-" + jumin1.substr(2,2) + "-" + jumin1.substr(4,2);

                    document.forms[0].elements[3].value = str;                    

                }

            }

            function keyup(evt){

                var jumin1 = this.value;

                if(jumin1.length == 6) document.forms[0].elements[5].focus();

            }

            function mychange(evt){

                var jumin1 = evt.target.value;

                if(jumin1.length != 6 || !jumin1){

                    alert("첫번째 주민번호의 값이 없거나 형식에 일치하지 않습니다.");

                    document.forms[0].elements[4].focus();

                    return false;

                }

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

                    if(isNaN(jumin1.charAt(i))) {

                        alert("숫자를 넣으세요.");

                        document.forms[0].elements[4].focus();

                        return false;

                    }

                }

                //alert(jumin1);

            }

            function myClose(evt){

                //opener는 부모 창을 뜻하고, self는 현재 내 창을 뜻한다.

                if(document.getElementById('male').checked) 

                    opener.document.getElementById('gender').innerHTML = "남자";

                else if(document.getElementById('female').checked) 

                    opener.document.getElementById('gender').innerHTML = "여자";

                opener.document.getElementById('birthday').innerHTML = 

                    self.document.getElementById('birthday').value;

                opener.document.getElementById('jumin').innerHTML = 

                    self.document.getElementById('jumin1').value + "-" + 

                    self.document.getElementById('jumin2').value;

                opener.document.getElementById('hp').innerHTML = 

                    self.document.getElementById('hp1').options[self.document.getElementById('hp1').selectedIndex].value + 

                    "-" + self.document.getElementById('hp2').value;

                    

                //confirm 을 이용해서 확인창을 띄움.

                if(window.confirm("정말 창을 닫으시겠습니까?"))

                    self.close();

                else

                      self.location.href ="";

            }

        </script>

    </head>

    <body>

        <form>

            <fieldset>

                <legend>개인정보</legend>

                <p><label>성별</label>

                    <input type="radio" id="male" name="gender" value="남자">

                    <label for="male">남자</label>&nbsp;&nbsp;

                    <input type="radio" id="female" name="gender" value="여자">

                    <label for="female">여자</label>

                </p>

                <p><label>생년월일 : <input type="date" id="birthday"></label></p>

                <p><label>주민번호 : </label>

                    <input type="text" maxlength="6" name="jumin1" id="jumin1" size="8"> - 

                    <input type="text" maxlength="7" name="jumin2" id="jumin2" size="8">

                </p>

                <p><label>휴대전화 : </label>

                    <select name="hp1" id="hp1">

                        <option value="010">010</option>

                        <option value="011">011</option>

                        <option value="016">016</option>

                        <option value="017">017</option>

                        <option value="019">019</option>

                    </select> - 

                    <input type="tel" name="hp2" id="hp2" placeholder="1234-5678">                    

                </p>

                <p><input type="button" value="입력완료" name="btn" id="myclosebtn"></p>

            </fieldset>

        </form>

    </body>

</html>

-------------------------

위의 windowdemo2.html 에 move 추가 : 창이 1초마다 움직이게

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script>

            window.addEventListener("load", setup, false);

            var w;

            function setup(evt){

                var btn = document.getElementById("btn");

                btn.addEventListener("click", myOpen, false);

            }

            function myOpen(evt){

                w = window.open("formdemo1.html", "w", 

                "left=0, top =0, width=600, height=400, menubar=yes, location=0, resizable=0, scrollbars=1, status=yes");

                moveWindow(evt);

            }

            function moveWindow(evt){

                w.moveBy(10, 10); //10,10의 방향으로 계속해서 움직임. 끝에 도달하면 멈춤.

                window.setTimeout(moveWindow, 1000);

            }

        </script>

    </head>

    <body>

        <h1>회원정보</h1>

        <ol>

            <li>성별 : <span id="gender"></span></li>

            <li>생년월일 : <span id="birthday"></span></li>

            <li>주민번호 : <span id="jumin"></span></li>

            <li>휴대전화번호 : <span id="hp"></span></li>

        </ol>

        <input type="button" value="회원정보입력하기" id="btn">

    </body>

</html>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

frameset 

frameparent.html

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

    </head>

    <frameset cols="30%, *">

        <frame src="menu.html" name="menu" />

        <frame src="content.html" name="content" />

    </frameset>

</html>

menu.html

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <style>

            body {background-color:yellow}

        </style>

        <script>

            window.addEventListener('load', setup, false);

            function setup(evt){

                document.getElementById('bookmark').addEventListener('change', change, false);

            }

            function change(evt){

                var sel = document.getElementById('bookmark');

                parent.frames[1].location = sel.options[sel.selectedIndex].value;    //부모의 2번째 프레임의 위치에  선택된 값을 뿌려줌.

            }

        </script>

    </head>

    <body>

        <label>자주가는 사이트</label>

        <select id="bookmark">

            <option>--선택--</option>

            <option value="https://www.google.com">Google</option>

            <option value="https://www.yahoo.com">Yahoo</option>

            <option value="http://www.naver.com">Naver</option>

            <option value="http://www.daum.net">Daum</option>

            <option value="http://www.nate.com">Nate</option>

        </select>

    </body>

</html>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

location : href는 새창으로, replace는 현재창에서 이동.

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script>

            window.addEventListener("load", setup, false);

            function setup(evt){

                document.getElementById('btn').addEventListener("click", change, false);

            }

            function change(evt){

                var age = Number(document.getElementById('age').value);

                if(age < 10){

                    window.location.href = "http://kids.daum.net/";

                }else if(age >= 10 && age < 19){

                    window.location.replace("http://jr.naver.com/");

                }else if(age >= 19){

                    window.location.href = "http://www.nec.go.kr/portal/lwMain.do";

                }//else if(age >= 65){

                  //  window.location.replace("");

                //}

            }

        </script>

    </head>

    <body>

        <p><label>Age : <input type="text" id="age"></label>

               <input type="button" id="btn">

         </p>

    </body>

</html>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

history : 방문기록이라고 생각하면 됨

historydemo.html

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script>

            window.addEventListener("load", setup, false);

            function setup(evt){

                var As = document.getElementsByTagName('a');

                As[1].addEventListener("click", myclick, false);

                As[2].addEventListener("click", myclick1, false);

            }

            function myclick(evt){

                alert(window.history.length);

            }

            function myclick1(evt){

                window.history.go(1);

            }

        </script>

    </head>

    <body>

        <p><a href="historydemo1.html">historydemo1.html로 가기</a></p>

        <p><a href="#">history 정보보기</a></p>

        <p><a href="#">Forward</a> </p>

    </body>

</html>


historydemo1.html

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

    </head>

    <body bgcolor='yellow'>

        <h1>historydemo1.html</h1>

        <input type="button" onclick="javascript:history.go(-1);">뒤로가기 

    </body>

</html>

//go(-1)대신 back() 사용해도 같다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

navigator 객체

useragent : os와 브라우저에 대한 정보

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="utf-8">

        <title> </title>

        <script>

            window.addEventListener("load", setup, false);

            function setup(){

                document.getElementsByTagName('p')[0].innerHTML = navigator.userAgent;

            }

        </script>

    </head>

    <body>

        <p></p>

    </body>

</html>

출력:

Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
















+ Recent posts