'Languages/JavaScript'에 해당하는 글 2건

DOM Script라는 말이 있는데, 이는 새로운 스크립트를 말하는 것은 아니다. 사실 DOM Script 라는 말은 없다. DOM 과 Script는 구분 되는 개념이다. 다만 두 개념이 아주 밀접한 관계가 있어서 연결해서 부르고 있을 뿐이다.

 

1.DOM

DOM은 문서의 논리적 구성을 말한다.

좁게 예기하지만 논리적 마크업이다.

DOM에선 문서의 각 요소를 노드(Node)라고 부르며 요소 노드(Element Node)와 텍스트 노드(Text Node) 및 요소 노드에 있는 속성 값들을 속성 노드(Atrribute Node)로 인식한다.

 



2.스크립트

스크립트의 표준은 ECMA Script이며 대부분 자바스크립트 중에서 표준을 정한 것이다. 거의 대부분의 브라우저가 ECMA Script를 지원한다. 다만 스크립트 작성 시 아래 사항을 고려해야한다.

 

 

 

● onclick과 같은 이벤트 핸들러를 마크업에 추가하면 스크립트의 완벽한 분리가 어려우며 id나 class를 사용하여 외부 스크립트 함수를 통해 실행 되도록 한다.

● return false;를 추가하여 스크립트 미작동 환경에서는 마크업의 a 태그가 실행되도록한다.

● 하위 호환성을 위해 if (!document.getElementById) return false;를 추가한다.

● 브라우저가 문서를 다 불러온 후 코드가 실행되도록 onload이벤트를 추가한다.

 

 

[출처] 웹표준과 DOM Script (컴퓨터/웹표준/웹접근성/사진/여행...) |작성자 박실짱

'Languages > JavaScript' 카테고리의 다른 글

동적 폼 생성 스크립트  (0) 2012.06.22

WRITTEN BY
GrimReaper
안녕하세요 Grim Reaper의 티스토리에 오신 것을 환영합니다.

,

아주 자주 사용하는 자바스크립트 함수중에 동적으로 폼을 생성하고, 히든 값을 추가하고, 서브밋 하는 함수를 소개하고자 한다.

물론 자바스크립트에서 [폼네임].submit(); 으로 대부분의 포스트 방식으로 페이징이 가능하지만,

그렇게 되면 HTML 상에 폼 태그가 반드시 있어야 하고, 폼의 위치나 전송방법 때문에 애를 먹는 일이 종종 있다.

그래서 얘를 조금 바꿔봤다.

 

	/* 폼: 생성 */
	function formCreate(nm,mt,at,tg) {
	 var f = document.createElement("form");
	 f.name = nm;
	 f.method = mt;
	 f.action = at;
	 f.target = tg ? tg : "_self";
	 return f;
	} 
	
	/* 폼: 인풋 생성 */
	function formInput(f,n,v) {
	 var i = document.createElement("input");
	 i.type = "hidden";
	 i.name = n;
	 i.value = v;
	 //f.appendChild(i);
	 f.insertBefore(i, null);
	 //f.insertBefore(i);
	 return f;
	}
	
	 /* 폼: 전송 */
	function formSubmit(f) {
	 document.body.appendChild(f);
	 f.submit();
	} 

이렇게 세 개의 함수를 공통으로 사용하는 js 파일에 추가한 뒤, 아래와 같이 사용한다.

 

function goCategoryPage(category_name) {
	var frm = formCreate('frmCategory','post','/main/category.do','');
	frm = formInput(frm, 'category_name', category_name);
	formSubmit(frm);	
}

1.  첫 번째 인자는 동적으로 만들 폼 이름을 정해주는 것이고,

    두 번째 인자는 포스트 방식과 겟방식 모두를 지원하기 위해 인자로 받는다.

    세 번째 인자는 이동하고자 하는 페이지다. 서버상에 존재하는 경로를 적는다.

    위의 예제에서는 '/main/category.do' <---- 요게 이동하고자 하는 페이지다.

     ( jsp를 바로 부른다고 하면 --> "/test/formtest.jsp" 이런걸 쓰면 된다.)

    네 번째 인자는 타겟인데, 페이지를 전송하는 대상이 자신이 아닌 프레임이나, 아이프레임, 혹은 팝업일 경우

    유용하게 사용할 수 있다.(포스트 방식의 팝업에 많이 썼던 것 같다.)

2.  frm = formInput(frm, 'category_name', category_name);

    얘는 동적으로 생성한 폼에 히든 값을 추가할 때 사용한다. 위의 예제에서는 'category_name' 이란 이름으로

    받아온 값을 'category_name' 이란 변수에 담아 폼에 저장해 준다. (얘를 이용하면 지저분한 폼태그와 히든 값

   넣는 태그 없이 값을 실을 수 있다.

3.  formSubmit(frm); --> 동적으로 만든 폼을 body 태그에 붙여준다. 동적으로 만들었기 때문에 메모리상에만

    존재하던 폼을 실제 HTML에 추가하고 해당 폼을 submit 해준다.

 

'/main/category.do' 라는 페이지로 category_name 의 값을 담아서 전송한다. 해당 페이지에서는 늘 하던 것 처럼

리퀘스트로 값을 받아서 처리할 수 있다.

 

'Languages > JavaScript' 카테고리의 다른 글

웹표준과 DOM Script  (0) 2012.06.27

WRITTEN BY
GrimReaper
안녕하세요 Grim Reaper의 티스토리에 오신 것을 환영합니다.

,