<javascript> 8.DOM, BOM
by BFine1. DOM, BOM
javascript 에서는 Html 문서와 웹브라우저를 객체로 간주하여 처리
Html 문서를 객체로 표현한 것을 DOM, 웹브라우저를 객체로 표현한 것을 BOM
getElements로 시작하면 1개 이상의 값을 가져온다.
<script>
function getDiv() {
alert(document.getElementsByTagName("div")[0].innerHTML); // 태그값을 불러온다
}
function setDiv(str) {
document.getElementsByTagName("div")[0].innerHTML = str; // 태그값 변경
}
</script>
</head>
<body>
<div>Hello</div>
<input type="button" value="check" name="n1" onclick="getDiv()"/>
<input type="button" value="modify" onclick="setDiv('world!')" />
</body>
======================================================
<script>
var image = ['cafelatte.jpg', 'americano.jpg', 'cappuccino.jpg'];
var count = -1;
function setImage1(im) { // javascript 오버로딩형태는 있지만 동작하지 않는다. 마지막에 정의한 함수만 유지 그 외는 무시된다.
if (arguments.length == 1) {
var imag = document.getElementById("k");
imag.src = "images/" + im; } 이런식으로 하나의 함수에 사용해야함
}
var imag = document.getElementById("k");
imag.src ="images/"+im;
// image.width="200";
}
function setImage() {
count++;
var temp = document.getElementById("k");
switch (count) {
case 1:
temp.src = "images/" + image[0];
break;
case 2:
temp.src = "images/" + image[1];
break;
default:
temp.src = "images/" + image[2];
break;
}
if (count == 3) { count = -1;}
}
</script>
</head>
<body>
<img id="k" src="images/hubble.jpg" width="100" height="50" alt="안보임" />
<input type="button" value="change" onclick="setImage1('cappuccino.jpg')" />
<input type="button" value="continue" onclick="setImage()" />
</body>
실행
<예제>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | var count = 0; function addLinkTag(){ var sitename = document.getElementById("sitename").value; var url = document.getElementById("siteurl").value; var aArray = document.getElementsByTagName("a"); aArray[count].href = url; aArray[count].innerHTML = sitename; count++; } </script> </head> <body> 링크사이트명:<input type="text" id="sitename" /><br> 링크url:<input type="text" id="siteurl"/> <input type="button" value="링크추가" onclick="addLinkTag()" /> <br/> <a></a><br /> <a></a><br /> <a></a><br /> <a></a><br /> <a></a><br /> </body> | cs |
2. Node
노드생성 : document.createTextNode()
노드추가 : getElementById로 불러와서 appendChild를 통해 추가한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <style> div { background-color:yellow; width:50px; } </style> <script> function add(text) { var newnode = document.createTextNode(text); var parent = document.getElementById("dv"); parent.appendChild(newnode); } </script> </head> <body> <div id="dv" onclick="add('Click')">Click<br/></div> </body> |
3. BOM Model
screen 화면 ( 최대 가로/세로 정보를 가짐)
history 방문기록
navigator 브라우저정보
location 주소표시
document 현재문서
frames 구성 프레임들
window 현재문서탭 (onlode())
BOM window(최상위 객체) 모델 부터 시작
window.open() , close() : 새로운 브라우저를 열때 사용
실행
<예제>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <!DOCTYPE html> <html> <head>< <meta charset="UTF-8"> <title>Parent</title> <script type="text/javascript"> var newwin; function check(){ newwin = window.open("idcheck.html","", "height=200, width=300,top=100,left=300,titlebar=no,scrollbars=no,menubar=no"); } function childclose() { document.getElementById("parent").innerHTML = newwin.document.getElementById("result").innerHTML; newwin.close(); } function browserinform() { document.getElementById("parent").innerHTML= window.navigator.userAgent; } </script> </head> <body> <input type="text" id= "id"> <input type="button" value=중복확인 onclick="check()"> <input type="button" value=새창닫기 onclick="childclose()"> <input type="button" value="새창이동" onclick="newwin.moveBy(10, 10); newwin.focus();" /> <!-- moveBy 이동, focus 항상위--> <input type="button" value="새창변경" onclick="newwin.resizeTo(screen.availHeight,screen.availWidth)" /> <input type="button" value="새창사이트변경" onclick="newwin.location.replace('http://www.google.com')" /> <input type="button" value="정보" onclick="browserinform()" /> <div id=parent></div> </body> </html> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <title>Child</title> </head> <body> <div id=result> </div> <input type="button" value=창닫기 onclick="myclose()"> <script type="text/javascript"> //내창:window //부모창:window.opener var id = opener.document.getElementById("id").value; if(id=="java"||id=="script"){ var output = id+"는 사용 가능합니다." }else{ var output = id+"는 사용 불가능합니다." } function myclose(){ window.close();//현재창 닫기 //opener.close(); } document.getElementById("result").innerHTML=output; </script> </body> </html> | cs |
'공부(2018~2019) - 스킨변경전 > Javascript' 카테고리의 다른 글
<jQuery> 4. Selector, Event (0) | 2018.04.10 |
---|---|
<Javascript> 9. Event, 정규표현식 (0) | 2018.04.09 |
<javascript> 7. Number, String (0) | 2018.04.05 |
<javascript> 6. Date, InnerHTML (0) | 2018.04.04 |
<jQuery> 3. Event (0) | 2018.04.02 |
블로그의 정보
57개월 BackEnd
BFine