원

자바스크립트 팁 (고급 팁)

· 2010-06-30 (수) 11:24:39 · 4001

ㅇ try catch문
   사용할때 : 보통 자바스크립트로 작업하다 보면 정말 어떨때는 구문에서 틀리지도 않았는데,
               브라우저 버젼에 따라 에러가 발생하기도 하고, 정말 몇달간 디버깅에 지칠때도 있다.
               대부분 열심히하면 나타나는데, 다음의 try catch문을 사용하면 편리하다.
   사용예   :
             try
             {
                  // 실제 실행시킬부분
                  var a   = opener.location.href;
             }
             catch (e)
             {
                  // 위의 "실행시킬부분"에서 에러가 났을때 처리해줄 부분
                  alert ("opener를 찾을수 없습니다.");
             }
             finally
             {
                  // 에러가 나든 나지 않든 무조건 실행시키는 부분
                  window.status   = "opener.locatoin.href 부분 실행되었음";
             }
ㅇ typeof문
   사용할때 : 보통 데이터나 오브젝트 타입등을 검사할때 많이 사용하는데.
                만약 "undefined"이면 인식을 못한거고 "unknown"이 나올때가
                있다.. 만약 부모창에서 새창을 열고 부모창을 닫았는지 새창에서 검사할때
                if (typeof (opener) == "unknown") 이면 으로 검사할때 유용하다~ㅇ

ㅇ regExp (정규표현식)
   사용할때 : 만약 <textarea name="taContent"></textarea>에 사용자가 입력한  value값중에서
                "/아싸1/" ~ "/아싸10/" 까지를 다 "/호호1/" ~ "/호호10/" 까지로 바꿀려면 어케할까?
               
                var sTaContent   = taContent.value;
                for (var nI = 1; nI <= 10; nI++)
                {
                       var expTest = new RegExp("/아싸" + nI + "/", "ig");   // i는 대소문자 구분없고, g는 중복되어도 다처리
                       sTaContent   = sTaContent.replace (expTest, "/호호" + nI + "/");
                }
                taContent.value   = sTaContent;
            
                하면 된다~ㅇ

                위의 expTest의 메소드들도 몇개있으므로 알아두면 많이 도움이 된다~ㅇ
                또한, 게시판의 글보기에 나오는 글들에 자동링크 걸때도 사용한다~ㅇ

ㅇ var a="08", b="09"일때
   parseInt (a)나 parseInt (b)의 값은 0 이다
   Number (a)나 Number (b)값을 해야 제대로 8과 9의 값이 나온다~ㅇ
   한번 고생한적이 있어서여~ㅇ 다른분들에게 도움이 되었으면...

ㅇ   <img name="pic1" src="">
   <img name="pic2" src="">
   <img name="pic3" src="">

   위와 같이 있고 javascript에서 pic1 ~ pic3의 src주소값을 바꾸고자 할때
  
   for (var nI = 1; nI <= 3; nI ++)
   {
        eval("document.pic" + nI + ".src ='http://image.aaa.com/p" + nI + ".gif'");
   }
  
   위와 같이 eval을 넣어주어야 되더라구여~ㅇ

ㅇ 현재의 html파일을 다른이름을로 저장할때 뜨는 dialog박스를 열어서 저장하고 싶을때
  
   그냥 다음한줄을 실행시키면 저장 dialog박스가 뜨는걸로 뭐하는지 알겁니다~ㅇ
   document.execCommand("SaveAs", null, "a.html")

   다르게하면 다음의 한줄을 넣고
   <iframe name="ID_LOG" style="display:none"></iframe>가 body에 있다고 하고

   var sHTML = "<center>Testing...</center>";
   document.all.ID_LOG.document.close ();
   document.all.ID_LOG.document.write (sHTML);
   document.all.ID_LOG.document.execCommand("SaveAs", null, sFileName);

   하면 Testing가 찍히는 html문서를 저장할수 있져~ㅇ 그런데 이거는 IE 5.5이상에서만 됩니다.

   5.0에서는

   var sHTML   = "<input type='button' value='저장' onClick=\"window.document.execCommand('SaveAs', null, 'a.html')\">";
       sHTML   += "<br><center> Testing..</center>";
  
   var oLogWin   = window.open ("", "popLog", "어쩌구...");
  
   oLogWin.document.write (sHTML);

   해서 새창띄워서 클릭하게 하면 됩니다~ㅇ

ㅇ 그리고 Javascript에서 name이나 id값이 같은것이 있으면 Array로 변하더군요...
   Javascript많이 사용하다보면 많이 접하셨을겁니다~ㅇ
  
   동적으로 name이나 id값이 1나 1이상을로 늘어날때에

   <span id="ID_A"></span>
   <span id="ID_A"></span>
   이 있다고 할때

   Javascript 안에서 에서

   var oID_A   = document.all.ID_A;

   if (typeof (oID_A [0]) != "undefined")) // 1개 이상일때
   {
  
   }
   else   // 1개만 있을경우
   {
  
   }

   물론 "ID_A" id값을 가지고 있는것이 있는지 먼저 검사하면 좋져~ㅇ

ㅇ 만약 a와 b와 c의 값을 구분자 ","로 구분하는 String (a,b,c)을 만들고 싶을때

   var oTmpArray = new Array ("a", "b", "c");
   var sValue = oTmpArray.join (",");

ㅇ javascript 연관배열
  
   var oMethod =   {
        "ALERT"   : goAlert,
        "MSG"   : goMsg
   }

   oMethod ["ALERT"] 는
   goAlert가 됩니다.

ㅇ onLoad, onClick, onMousewheel... 등등의 이벤트를 붙이거나 떼기
  
   window.attachEvent ("onscroll", procScroll);
    하면 onscroll이벤트 발생시 procScroll함수 실행
  
   window.detachEvent ("onscroll", procScroll);
   하면 onscroll이벤트 떼기

ㅇ 움직이는 gif이미지를 key이벤트나 등등 이벤트사용하면 움직이던 gif이미지가 멈추어버립니다.
   알고보니 return값땜시 "event.returnValue = 'false'" 해주면 되더라구여~ㅇ

ㅇ ActiveX를 사용시 ActiveX클라이언트가 ActiveX를 다운 받았는지 확인할때는
  
   <object name=AX1 id=AX1></object> 가 있을때

   var bnResult   = typeof (AX1.proc) == "unknown")? true : false;
   proc는 AX1의 method입니다~ㅇ
   이렇게 확인하면 되더라구여~ㅇ

ㅇ F5번 누를때 경고창(confirm같은것)띄워서 새로고침 할건지 물어보기
  
   window.onbeforeunload   = hoho ();

   function hoho ()
   {
        var sMsg = "새로고침을 정말로 정말로 정말로 할꺼예여?";
        return (sMsg);
   }
   물론 F5번 눌렀을때를 key Event로 잡아서 함수안에서 실행해도 됩니다~ㅇ

ㅇ VBscript에만 있는줄 알았던 with 많이 쓰일때가 있더군요 switch문을 안에다가 사용하면 정말 깔끔!
  
   with (window)
   {
        onload    = pageOnLoad;
        onunload = pageUnload;
   }

 
[이 게시물은 관리자님에 의해 2011-10-31 16:57:14 JavaScript에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
12-08-29 조회 4,047
12-08-07 조회 3,731
12-08-03 조회 3,543
12-07-31 조회 3,646
12-07-30 조회 3,601
12-07-16 조회 3,819
12-07-15 조회 3,607
12-07-07 조회 3,511
12-07-06 조회 3,701
12-07-03 조회 3,675
12-06-29 조회 3,252
12-06-22 조회 3,632
12-06-17 조회 3,845
12-05-21 조회 3,800
12-05-02 조회 3,380
12-05-02 조회 4,173
12-05-02 조회 3,292
12-04-30 조회 3,467
12-04-30 조회 3,163
12-03-17 조회 4,009
12-03-10 조회 3,364
12-03-08 조회 3,882
12-03-03 조회 3,558
12-02-27 조회 4,977
12-02-17 조회 4,313
12-02-16 조회 4,556
12-02-03 조회 3,278
12-01-31 조회 3,120
12-01-24 조회 3,125
12-01-17 조회 3,861
12-01-05 조회 3,414
11-12-30 조회 3,096
11-12-23 조회 4,701
11-12-08 조회 3,425
11-12-07 조회 4,403
11-11-27 조회 3,804
11-11-25 조회 4,154
11-11-23 조회 3,600
11-11-22 조회 3,477
11-11-09 조회 3,198
11-10-23 조회 3,108
11-10-19 조회 3,080
11-10-08 조회 2,781
11-10-04 조회 2,788
11-10-04 조회 5,233
11-09-01 조회 4,299
11-08-13 조회 2,466
11-08-06 조회 3,160
11-07-11 조회 3,560
11-06-27 조회 2,935
11-06-21 조회 2,609
11-06-13 조회 2,388
11-06-07 조회 2,392
11-05-26 조회 2,392
11-04-20 조회 2,697
11-03-21 조회 2,788
11-03-18 조회 2,484
11-03-11 조회 2,523
11-02-07 조회 2,341
11-01-18 조회 2,656
11-01-12 조회 2,389
11-01-06 조회 2,491
10-12-10 조회 2,758
10-12-09 조회 2,518
10-12-08 조회 5,011
10-11-29 조회 2,612
10-11-28 조회 2,777
10-11-28 조회 2,615
10-11-19 조회 2,797
10-11-04 조회 2,688
10-10-21 조회 2,401
10-10-19 조회 3,350
10-10-12 조회 2,674
10-10-07 조회 2,505
10-09-30 조회 3,463
10-09-17 조회 3,857
10-09-17 조회 3,828
10-05-31 조회 3,499
09-12-31 조회 3,646
09-07-23 조회 4,965
08-09-16 조회 3,190
08-09-06 조회 2,923
08-09-04 조회 3,351
08-08-16 조회 4,401
08-08-15 조회 3,267
08-08-14 조회 4,479
08-08-12 조회 3,923
08-07-23 조회 2,777
08-07-10 조회 3,714
08-07-04 조회 2,938
08-06-27 조회 7,582
08-06-19 조회 4,872
08-05-27 조회 5,491
08-05-25 조회 5,320
08-05-23 조회 3,390
08-05-23 조회 4,528
08-05-21 조회 4,909
08-05-20 조회 4,031
08-05-20 조회 3,271
08-04-18 조회 4,310