BOM(Browser Object Model)
    : 브라우저와 관련된 객체를 뜻함.
    : Window, Location, History, Navigator, Screen

    <!DOCTYPE html>
    <!-- 
    	BOM(Browser Object Model)
    		: 브라우저와 관련된 객체를 뜻함.
    		: Window, Location, History, Navigator, Screen
    
     -->
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>Window 객체</title>
    </head>
    <body>
    	<script type="text/javascript">
    		alert("window object"); //window. 생략가능
    		window.alert("window object2");
    		
    		console.log("window object3");
    		window.console.log("window object4");
    		
    		window.open("https://www.google.com", "openWindow", "width=500, height=300")
    		
    		
    	</script>
    </body>
    </html>

    창 위치이동

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>Insert title here</title>
    </head>
    <body>
    	<script type="text/javascript">
    		var newWindow = window.open("https://www.google.com", "google", "width=500, height=600");
    		
    		//위치 조정
    		newWindow.moveTo(50,50);
    		for (var i = 0; i < 1000; i++) {
    			newWindow.moveBy(1,1); 
    		}
    		
    		//사이즈 조절
    		newWindow.resizeTo(500,600);
    		for (var i = 0; i < 200; i++) {
    			new window.resizeBy(-1,-1);
    		}
    	</script>
    </body>
    </html>

     


    onload() 사용

    <!DOCTYPE html>
    <!-- 
    	* onload() 이벤트 : 호출된 웹문서가 모두 완료된 후 자동으로 실행.
     -->
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>window.onload()</title>
    </head>
    <body>
    	<script type="text/javascript">
    		window.onload = function() {
    			console.log("First");
    		};
    	</script>
    	
    	<script type="text/javascript">
    		console.log("Second");
    	</script>
    	
    	<script type="text/javascript">
    		console.log("Third!");
    	</script>
    	
    </body>
    </html>


    *DOM(Document Object Model)


    - 웹문서(테그)와 관련된 객체를 뜻함.
     * JS이용해서 html 테그 객체를 생성, 추가, 삭제, 이동 등의 작업을 할수 있음.

     

    <!DOCTYPE html>
    <!-- *DOM(Document Object Model)
    		- 웹문서(테그)와 관련된 객체를 뜻함.
    	
    	 * JS이용해서 html 테그 객체를 생성, 추가, 삭제, 이동 등의 작업을 할수 있음.
     -->
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>텍스트 노드 이용하기</title>
    </head>
    <body>
    	<script type="text/javascript">
    		/* javascript를 이용해서 문서만들기 
    			: DOM HTML API를 이용한 HTML 문서 요소 접근
    		*/
    		window.onload = function() {
    			// 새로운 Element 객체를 생성함.
    			var elementNode = document.createElement("p"); //createElement 테그이름 입력
    			// 새로운 TextNode 객체를 생성함.
    			var textNode = document.createTextNode("javascript & jsp");
    			
    			// 자식노드 객체를 추가함.
    			elementNode.appendChild(textNode); 
    			document.body.appendChild(elementNode);
    		};
    	</script>
    </body>
    </html>

     


    img.zip
    0.15MB

    텍스트 노드와 이미지노드 이용하기

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>텍스트 노드와 이미지노드 이용하기</title>
    </head>
    <body>
    	<script type="text/javascript">
    /* 		var imgNode = document.createElement("img");
    		imgNode.src = "./img/logo.png";
    		imgNode.width = "170";
    		imgNode.height = "67";
    		
    		document.body.appendChild(imgNode); */
    		
    		//방법 2 동일한 결과
    		var imgNode = document.createElement("img");
    		imgNode.setAttribute("src", "./img/logo.png");
    		imgNode.setAttribute("width", "170");
    		imgNode.setAttribute("height", "67");
    		
    		document.body.appendChild(imgNode);
    	</script>
    </body>
    </html>


    innerHTML속성 이용하기

     

    Node.innerHTML : 문서에 HTML 텍스트 문자열을 기술하면
     간단히 새로운 내용을 추가할수 있음.

     

     


    Javascript를 이용해서 객체 선택하기

     

    id 속성값을 이용해서 객체 선택하기 
    document.getElementById("id속성값")

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>Javascript를 이용해서 객체 선택하기</title>
    </head>
    <body>
    	<script type="text/javascript">
    		/* id 속성값을 이용해서 객체 선택하기 
    			document.getElementById("id속성값")*/
    			
    		window.onload = function() {
    			var str = "";
    			str += "<p id='jstitle'> javascript & jsp </p>";
    			str += "<img id='logoImg', src='./img/logo.png',";
    			str += "width='170', height='67'>";
    			
    			document.body.innerHTML = str;
    			
    			var titleNode = document.getElementById("jstitle");
    			titleNode.innerHTML = "JS & jsp";
    			
    			var logoNode = document.getElementById("logoImg");
    			logoNode.setAttribute("src","./img/img02.jpg");
    			logoNode.setAttribute("width", 297);
    			logoNode.setAttribute("height", 124);
    		};	
    	</script>
    </body>
    </html>


    JS를 이용해서 객체 삭제하기

    부모객체를 찾은 다음 부모객체에서 자식객체를 삭제한다.

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>JS를 이용해서 객체 삭제하기</title>
    </head>
    <body>
    	<script type="text/javascript">
    		/* 부모객체를 찾은 다음 부모객체에서 자식객체를 삭제한다. */
    		
    		window.onload = function() {
    			var str = "";
    			str += "<p id='jstitle'> javascript & jsp </p>";
    			str += "<img id='logoImg', src='./img/logo.png',";
    			str += "width='170', height='67'>";
    			
    			document.body.innerHTML = str;
    			
    			var titleNode = document.getElementById("jstitle");
    			titleNode.parentNode.removeChild(titleNode);
    			
    			var logoNode = document.getElementById("logoImg");
    			logoNode.parentNode.removeChild(logoNode);
    			
    		};
    	</script>
    </body>
    </html>

    JS를 이용해서 CSS 적용하기

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>JS를 이용해서 CSS 적용하기</title>
    </head>
    <body>
    	<script type="text/javascript">
    		/* style속성을 이용해서 css 적용 */	
    		window.onload = function() {
    			
    			var str = "";
    			str += "<p id='jsTitle'> Javascript & jsp </p>";
    			str += "<img id='logoImg', src='./img/logo.png'>";
    			
    			document.body.innerHTML = str;
    			
    			var titleNode = document.getElementById("jsTitle");
    			titleNode.style.fontSize = "3em";
    			titleNode.style.border = "1px, solid, #ff0000";
    			
    			var logoNode = document.getElementById("logoImg");
    			logoNode.style.width = "179px";
    			logoNode.style.height = "67px";
    			
    			
    			
    		};
    	
    	</script>
    </body>
    </html>

    노드타입이 엘리멘트인 노드의 이름을 출력

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>노드타입이 엘리멘트인 노드의 이름을 출력</title>
    </head>
    <body>
    	<div id="result"></div>
    	
    	<script type="text/javascript">
    		
    		//HTML 문서가 파싱되고 외부 컨텐츠 로딩이 완료되면 
    		//웹 브라우저는 load 이벤트를 발생하는데,
    		//이벤트 헨들러로 등록된 함수가 실행됨.
    		window.onload = function() {
    			//id값이 "result"인 div테그를 찾아서 
    			//innerHTML 속성(프로퍼티)에 html문자열 값을 저장함.
    			var result = document.getElementById('result');
    			result.innerHTML = printTegs(document);
    		};
    		
    		//주어진 노드 객체의 모든 자식노드 중 노드타입이 엘리멘트인 노드의 이름을 출력함.
    		function printTegs(node) {
    			var tags = '';
    			
    			// 노드타입이 엘리먼트인지를 검사
    			if(node.nodeType == Node.ELEMENT_NODE){
    				//nodeName 프로퍼티에 저장되어 있는 노드의 이름을 tags 변수에 저장함.
    				tags += node.nodeName + '<br/>';
    			}
    			
    			// 자식노드 객체들에 대한 NodeList 객체를 저장함.
    			var children = node.childNodes;
    			
    			// NodeList 객체의 length 프로퍼티 이용해 printTags함수를 재귀호출 함.
    			for (var i = 0; i < children.length; i++) {
    				//printTags함수에 NodeList객체에 담긴 자식노드 항목들을 전달하여
    				//실행된 결과를 tags 변수에 문자열 집합연산을 통해 저장함.
    				tags += printTegs(children[i]);
    			}
    			
    			return tags;
    			
    		};
    	</script>
    </body>
    </html>


    자바스크립트를 이용하여 DOM 이벤트

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>Insert title here</title>
    </head>
    <body>
    	<form action="">
    		<label>
    			웹 사이트 : <br/>
    			<input type="text" id="siteName" size="50"/><br/>
    		</label>
    		<label>
    			URL : <br/>
    			<input type="text" id="url" size="50"/><br/>
    		</label>
    		<input type="button" id="btnAdd" value="추가"/>
    		<input type="button" id="btnCancel" value="취소"/>
    	</form>
    	<div id="result">
    	</div>
    	
    	<script type="text/javascript">
    		/* 이벤트 : 마우스, 버튼, 양식 전송, 웹페이지 로드, 포커스...
    		   이벤트 형식 : 
    			   		 
    			         이벤트 이름          이벤트 헨들러
    			   		 -----                -------------   
    			   xxx.onclick        =       function() {}	
    			   	   -------        --
    			   	   이벤트 속성    이벤트 연결
    		
    		*/	
    		window.onload = function() {
    			var btnAddElement = document.getElementById("btnAdd");
    			var btnCancelElement = document.getElementById("btnCancel");
    			btnAddElement.onclick = add;
    			btnCancelElement.onclick = cancel;
    		};
    		
    		//버튼 btnAdd를 클릭하면 이함수를 호출함
    		function add() {
    			//id 속성값이 'siteName', 'url', 'result'인 엘리먼트를 찾아 참조함.
    			var siteNameElement = document.getElementById("siteName");
    			var urlElement = document.getElementById("url");
    			var resultElement = document.getElementById("result");
    			
    			//<a></a> 새로운 Element 객체를 생성함.
    			var anchorElement = document.createElement('a');
    			//<a href="url value"></a>
    			anchorElement.href = urlElement.value;
    			
    			//siteNameElement에 저장된 값으로 텍스트노드를 저장함.
    			var newTextNode = document.createTextNode(siteNameElement.value);
    			
    			//<a href="url value"></a> 엘리먼트의 자식노드로 방금전에 만든 텍스트노드를 추가함.
    			//화면에 텍스트를 보이게끔함
    			anchorElement.appendChild(newTextNode);
    			
    			//<br/> 엘리먼트를 생성함
    			var brElement = document.createElement("br");
    			
    			//resultElement의 자식노드로 anchorElement와 brElement 추가함.
    			resultElement.appendChild(anchorElement);
    			resultElement.appendChild(brElement);
    			
    			//추가버튼 누르면 비워짐
    			siteNameElement.value = '';
    			urlElement.value = '';
    		};
    		
    		//버튼 btnCancel를 클릭하면 이함수를 호출함
    		function cancel() {
    			//id속성값이 'siteName', 'url' 인 엘리먼트를 찾아 참조함
    			var siteNameElement = document.getElementById("siteName");
    			var urlElement = document.getElementById("url");
    			
    			//입력 필드를 초기화함.
    			siteNameElement.value = '';
    			urlElement.value = '';
    		};
    		
    		
    	
    	</script>
    </body>
    </html>

     

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading