ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 240920 #003 BOM / DOM
    JavaScript 2020. 9. 24. 09:09

    브라우저 객체 모델(Browser Object Model)

    window


    location

    프로토콜의 종류, 호스트 이름, 문서 위치 등의 정보

    (페이지를 이동하는 데 필요한 정보들) local:8181~ 이런 것들,,

            //location
            var output=""; //var를 추가해야할 것 같아? 왜?
            for(var v in location ){ //location이 obj처럼 여러 key와 value를 갖고 있어, 지금 그걸 보려고 이 작업을 하는 거야
                output += v + " : "  + location[v] + "<br>" //v가 location의 key를 빼오니까 value값 보려고 location[v]
            }
            document.body.innerHTML = output;

     

    기본 key

    key name description example
    hash anchor name #bookmark
    search request parameter ?var1=123

     

    기본  method

    method name description
    assign(URL) move to the URL
    reload() reload the page
    replace(URL) replace the page by the URL (impossible to go back)

     

    	document.querySelector("#btnReload").onclick = function(){
                location.reload; //getElementById와의 차이?
            }
            document.querySelector("#btnAssign").onclick = function(){
                location.assign("https://naver.com");
            }
            document.querySelector("#btnReplace").onclick = function(){
                location.replace("https://naver.com"); // 요걸로 하면 뒤로가기 불가
            }
            var output=""; //var를 추가해야할 것 같아? 왜?
            for(var v in navigator ){ //location이 obj처럼 여러 key와 value를 갖고 있어, 지금 그걸 보려고 이 작업을 하는 거야
                output += v + " : "  + navigator[v] + "<br>" //v가 location의 key를 빼오니까 value값 보려고 location[v]
            }
            document.getElementById("outputNav").innerHTML = output; // 오 출력 위치 조정하는거 잘 확인해!!
    

    navigator

    : 브라우저의 정보를 제공하는 Obj

     


    history

    방문한 히스토리 url

    // 1 google
            // 2 naver
            // 3 코로나19
            // 4 서울시간
            // 5 본화면
            // 6 naver
            // 7 사전
            document.querySelector("#back").addEventListener("click", function(){
                history.back();
            });
            document.querySelector("#go").addEventListener("click",function(){
                var num = document.querySelector("#num").value;
                history.go(num);
            });
            document.querySelector("#forward").addEventListener("click", function(){
                history.forward();
            })
            document.querySelector("#goNaver").addEventListener("click", function(){
                location.assign("https://naver.com");
            })

    screen

    웹 브라우저 말고, 운영체제의 화면의 속성

    @ media screen and (min-width: 800px) { }

    key name description
    width  
    height  
    availWidth  
    availHeight  
    colorDepth  
    pixelDepth  

     


    문서 객체 모델(Document Object Model)

    HTML, XML 문서의 모든 요소(Element)에 접근하는 방법을 정의한 programming Interface

     

    객체의 종류

    node / element / HTMLelement / document

     

     

     


    문서 객체 만들기

     

    노드 생성 메소드

    method description
    createElement(tagName) create an element node
    createTextNode(node) create a text node

    노드 연결 메소드

    method description
    apprendChild(node) connect the node to the object

     

    //노드생성 방법 1
    	    //document 안에 h1 element를 생성하고 header라는 obj에 넣는다.
                var header = document.createElement("h1");
                //document 안에 Hello라는 textNode를 생성하고 textNode라는 obj에 넣는다.
                var textNode = document.createTextNode('Hello');
                //header 안에 textNode를 집어 넣는다.
                header.appendChild(textNode); 
    
    //노드생성 방법 2
                var html = "";
                html+="<ul>";
                html+="<li>javascript</li>";
                html+="<li>DOM</li>";
                html+="<li>jQuery</li>";
                html+="</ul>";
                document.body.innerHTML = html; //위아래 순서 바꾸면 출력 둘 다 돼 (이게 덮어씌우는 느낌인 듯)
    

     

     


    속성 지정하기

    window.onload = function(){
             //노드 생성
        	    var img1 = document.createElement("img");
                //노드 속성 지정
                img1.src = "./images/stuoy_nuki1.png"
                img1.width = 320;
                img1.height = 200;
                //노드 연결
                document.body.appendChild(img1);
    }

     

     


    document obj

     

     

     


    문서 객체 불러오기

    Change the HTML content of a <p> element with id="demo"

    = innerHTML's definition

    id로 가져오기

    getElementById

    <script>
        window.onload = function() {
        var title_1 = document.getElementById('title_1');
        var title_2 = document.getElementById('title_2'); 
        title_1.innerHTML = 'hey';
        title_2.innerHTML = 'what?'; //여기서 body.innerHTML이라고 안쓰는 이유?
        //.value와 같이 innerHTML 속성을 가진 tag들이 존재하는데, 보통 쌍을 두는 tag들이 그 예.
        //위에 title_1이 h1의 속성을 갖게되면서 innerHTML의 속성도 자연스레 가진거야.
        };
    </script>

     

    <body>
      <h1 id="title_1">TITLE</h1>
      <h1 id="title_2">JavaScript</h1>
    </body>

    태그로 가져오기

    getElementsByTagName (Id 제외한 것들은 여러 개가 가능해서 element's'이다.)

    객체를 '배열'로 가져온다.

    window.onload = function() {
      var headers = document.getElementsByTagName('h1'); //Element's'가 된거 확인.
        headers[0].innerHTML = 'Hey';
        headers[1].innerHTML = 'What?';
    };

    문서 객체 삭제하기

    method description
    removeChild() remove the child node in the document object

     

    'JavaScript' 카테고리의 다른 글

    051020 JavaScript 회원가입  (2) 2020.10.05
    280920 Web SQL Database  (0) 2020.09.28
    280920 #JavaScript Exercises  (0) 2020.09.28
    230920 #002 상속 / 내장함수 및 객체  (1) 2020.09.23
    220920 #001 JavaScript -  (0) 2020.09.22

    댓글

Designed by Tistory.