겸손한 자바스크립트.

jQuery 랑 jQuery form.validate 쓰는데.

기존에 html 태그에 사용자 attribute 로 required minlength=4

이런식으로 쓰는것보다 더 시간이 오래 걸린다.....

겸손한 자바스크립트는 ..

개뿔.....

손가락만 아프다..


저작자 표시 비영리 변경 금지
Posted by 알찬돌삐

댓글을 달아 주세요

PHPSCHOOL 벤지님이 올린 팁텍을 보고..

[PHPSCHOOL 팁텍 바로가기]

뭐 다른건 모르겠고..

내가 쓰는 소스를 예제로 들면..

난 document.createElement 로 DOM 을 추가할때 따로 함수로 만들어쓴다.

function crEl(el) { return document.createElement(el); }

팁텝의 내용을 보면 위 소스에서 메모리 누수가 발생한다는 것이다 -ㅅ-..

아래와 같이 수정해야 한단다..

function crEl(el) {
    var obj = document.createElement(el);
    try {
       return obj;
    }
    finally { // 핵심은 finally 이 부분이란다..
        obj = null;
    }

}

근데 왜 난 메모리누수가 안 생기지 ㅡㅡ?

AJAX request 부분에서 저 함수를 호출해야 되나..

몇가지 코드들이 더 있으니 아래에서 확인해봐도 좋을듯..

http://www.hedgerwow.com/360/dhtml/ie6_memory_leak_fix/

ps. 벤지사마 지송 ㅋㅋ. 퍼왔슴다!
Posted by 알찬돌삐

댓글을 달아 주세요

IE 6,7 도..
Opera 도..
Safari 도..

document.readyState 를 지원하는데..

왜 FireFox 너는 ㅠ.

지원을 안하는거니 ㅠ.

모질라 홈피에도 이런 글이 있긴 있더라 ..

악.슈발 ㅠ.

이미지는 퍼와뜸. ㅋㅋ.

난 듀얼 모니터 아니밍..

사용자 삽입 이미지


이미지 출처 http://support.mozilla.com/tiki-view_forum_thread.php?locale=ko&comments_parentId=103310&forumId=1


phpschool 에서 이 문제를 꺼내어 보니..
t3RRa 님이 링크를 줘서 확인....
역시 해외에서 사니깐 영어가 되는구나. 이넘의 영어가 안되니 ㅠ.츄륵.

사용자 삽입 이미지

위 문서 링크 http://www.devguru.com/technologies/xmldom/QuickRef/document_readyState.html

결론. document.readyState 는 W3C DOM 규약에 존재하지 않음.
        Microsoft 의 확장 규약이지만, 오페라, 사파리는 IE 와의 호환성 때문에 지원하는거 같음.
        그래도 FF 지못미 ㅠ.
Posted by 알찬돌삐

댓글을 달아 주세요


String.prototype.comma=function() 
{ 

var l_text=this; 
var l_pattern=/^(-?\d+)(\d{3})($|\..*$)/; 

  if(l_pattern.test(l_text)){ 
    l_text=l_text.replace(l_pattern,function(str,p1,p2,p3) 
    { 
      return p1.comma() + ("," + p2 + p3); 
    }); 
  } 

  return l_text; 

}




출처 : 스쿨 Tip & Tech
Posted by 알찬돌삐

댓글을 달아 주세요

삽질.........ㅠ.

기존에는 아무 생각없이

html 태그에 인라인으로 이벤트 핸들러를 바로 넣어버려서..
복사가 다 되었었나보다 ㅡㅡ;

간만에 후로토타입 observe 를 써서 한다고 ㅡㅡ;
했더니만....... 코드 다 만들어놓고 IE 에서 테스트 --;

뭐 물론 주 사용자 계층이 IE 니깐.. 그거에 맞추는건 당연하지만.
혹시나 싶어서 FF 에서 돌렸더니 ㅡㅡ;

ajax 코드가 하나도 작동안해서 일일이 코드 쫓아다니면서 수정..

아오~~~~~~~~~~~



그렇다고 모든 복사한 개체마다 이벤트를 다시 걸어주긴 귀찮다.
걍 인라인 태그로 ㅋㅋ. 왜 IE 는 되는데 FF 는 안되냐고요~~~~~~~
Posted by 알찬돌삐

댓글을 달아 주세요

  1. 모던보이 2008/08/11 18:19  댓글주소  수정/삭제  댓글쓰기

    니마는 천직이 노가다ㅋㅋㅋ

phpschool 에 올렸던 글인데 ㅋ.
미흡하게나마 ㅡㅡ;
실력이 미천하여 ^^.

페이지 안에 있는 모든 라디오 버튼을 체크하여
체크되지 않은 라디오버튼으로 포커스를 옮겨줍니다.

function radio_check() {
var radio_obj = new Array();
var cnt = 0;
var obj = document.getElementsByTagName("input");
for (var i = 0; i < obj.length; i++) {
    if (obj[i].type == "radio") {
        if (radio_obj[cnt - 1] != obj[i].name) {
            radio_obj[cnt] = obj[i].name;
            cnt++;
            }
        }
    }

// radio_obj
for (var i = 0; i < radio_obj.length; i++) {
    var obj = document.getElementsByName(radio_obj[i]);
    for (var j = 0; j < obj.length; j++) {
        if (obj[j].checked == true) { break; }
            if ((j+1 == obj.length) && (obj[j].checked == false)) {
                          window.alert("선택되지 않은 문항이 있습니다. 선택해 주십시오.");
            obj[0].focus();
            return;
            }
        }
    }
}


사용법 :
그냥 radio_check()  호출하면 됩니다 -0-;
Posted by 알찬돌삐

댓글을 달아 주세요

원문내용 :

http://labb.dev.mammon.se/swfupload/

예전에(2005년) 이곳을 통해 거친마루님이 플래쉬 파일 다중 파일 업로더(링크 #2)를 설명하신 적이 있습니다.

SWFUpload는 플래쉬를 이용한 오픈소스 다중파일 업로더입니다. 플래쉬 + 자바스크립트를 사용하고 있고 아직은 베타버전이지만, 포함된 소스는 매우 간단하고 쓸만합니다 :)

UI는 전적으로 자바스크립트에 의존합니다 (그러므로 html+css). 플래쉬 UI가 없습니다. 포함된 플래쉬는 1x1 pixel크기일 뿐입니다.

옵션이 여러가지 있는데, 특정 파일 포맷만 지정한다거나, 파일 용량 지정, progress bar 등등을 위한 사용자 callback 자바스크립트 지정 등등을 할 수 있습니다.

예제 및 데모는 해당 사이트에 있으니 참고하시기 바랍니다 :)

이미 널리 알려진 정보이므로  불펌도 상관 없습니다. 라이센스에 Public Domain은 없군요 ^^;;


URL : PHPSCHOOL


개인적 의견

이거 써 본 결과 SWF 파일이 브라우저에 캐쉬된 다음
서버쪽의 upload.php 파일이 지워지더라도 브라우저상에서는 업로드 상태바가 진행되며
업로드가 된것처럼 표시된다.

수정해서 써야되겠음
수정해야 될 내용 : fla 파일에서 파일이 select 되더라도 바로 업로드 진행하지 않고 따로 자스쪽으로 파일목록을 넘겨준 다음 클라이언트에서 업로드할 파일을 선택해서 업로드 되도록 수정이 필요할것 같음.
Posted by 알찬돌삐

댓글을 달아 주세요

페이지내의 모든 라디오버튼을 검사하여
체크되지 않은 라디오 버튼으로 포커스를 옮겨줍니다.




function radio_check() {
var radio_obj = new Array();
var cnt = 0;
var obj = document.getElementsByTagName("input");
for (var i = 0; i < obj.length; i++) {
   if (obj[i].type == "radio") {
       if (radio_obj[cnt - 1] != obj[i].name) {
           radio_obj[cnt] = obj[i].name;
           cnt++;
           }
       }
   }

// radio_obj
for (var i = 0; i < radio_obj.length; i++) {
   var obj = document.getElementsByName(radio_obj[i]);
   for (var j = 0; j < obj.length; j++) {
       if (obj[j].checked == true) { break; }
           if ((j+1 == obj.length) && (obj[j].checked == false)) {
                          window.alert("선택되지 않은 문항이 있습니다. 선택해 주십시오.");
           obj[0].focus();
           return;
           }
       }
   }
}



PHPSCHOOL 의 TIP/TECH 에 올린 글
Posted by 알찬돌삐

댓글을 달아 주세요

자바스크립트로 좌석예매시스템을 간단히 테스트하는데
커플석에서 헤매는데 소하님인가?
간단히 해결해버리는구나.
난 허접이었다.

source view...

Posted by 알찬돌삐

댓글을 달아 주세요

[CODE]<script language='javascript'> function urlcopy(addr) { if (window.clipboardData) { window.clipboardData.setData("Text", addr); } else if (window.netscape) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPC onnect'); var clip = Components.classes['@mozilla.org/widget/clipboard;1'] .createInstance(Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes['@mozilla.org/widget/transferable ;1'].createInstance(Components.interfaces.nsITransferable); if (!trans) return; trans.addDataFlavor('text/unicode'); var str = new Object(); var len = new Object(); var str = Components.classes["@mozilla.org/supports-string;1"].c reateInstance(Components.interfaces.nsISupportsString); var copytext=addr; str.data=copytext; trans.setTransferData("text/unicode",str,copytext.length*2); var clipid=Components.interfaces.nsIClipboard; if (!clip) return false; clip.setData(trans,null,clipid.kGlobalClipboard); } alert('트랙백 주소가 클립보드에 저장되었습니다.'); } </script>[/CODE]
Posted by 알찬돌삐

댓글을 달아 주세요