freddy
느낌으로 남지않기
freddy
전체 방문자
오늘
어제
  • 분류 전체보기 (28)
    • HTML (2)
    • CSS (1)
    • JavaScript (8)
    • WebGL (0)
    • 개념정리 (0)
    • React (2)
    • ReactNative (4)
    • ERROR.LOG (3)
    • 설치 (2)
    • 챌린지 (0)
    • 책 (0)
    • 세미나 (2)
    • 일기장 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리액트의 필요성
  • javascript 이벤트 위임
  • javascript30
  • css variables
  • 브라우저 동작 원리
  • 앱이 계속 중지됨
  • react
  • react 사용하는 이유
  • em과rem차이
  • bitnami ubuntu
  • JavaScript
  • Nullish coalescing operator
  • evnet 위임
  • Destructuring assignment
  • JS
  • react 기초
  • Spread syntax
  • javscript 기초
  • javascript 최신문법
  • es11
  • 값식문
  • BOM 이란?
  • Github Actions
  • Optional chainning
  • 최신JS문법
  • React-Native
  • Shorthand property names
  • 프론트엔드
  • react 특징
  • React Native

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
freddy

느낌으로 남지않기

HTML

BOM (Browser Object Model)

2020. 12. 22. 11:57
반응형

BOM을 알아야 하는 이유

❗유저에게 경고창을 띄우고 싶은 경우,
❗유저의 yes or no와 같은 선택에 따라 다른 응답을 보여주고 싶은 경우
❗유저가 브라우저 창을 닫기 전에 정말 떠날 것인지 확인하고 싶은 경우
❗유저가 접속한 환경을 알고 싶은 경우
❗현재 url 위치 및, 접속 history를 알고 싶은 경우

여러 ui를 직접 만들고 자바스크립트로 직접 제어할 수도 있지만, 브라우저에서 제공하는 기본 API를 사용한다면 훨씬 빠로고 간단하게 프로토타이핑을 할 수 있습니다.

 

BOM(Browser Object Model)은 웹 브라우저 환경의 다양한 기능을 객체처럼 다루는 모델입니다. 대부분의 브라우저에서 구현은 되어있지만, 정의된 표준이 없어 브라우저 제작사 마다 세부사항이 다르고 다소 한정적이라는 특징이 있습니다. BOM의 역할은 웹 브라우저의 버튼, URL 주소 입력 창, 타이틀 바 등 웹브라우저 윈도우 및 웹페이지의 일부분을 제어할수 있게끔 하는 것입니다. window 객체를 통해 접근이 가능합니다. 아래는 대표적인 BOM 객체들입니다.

  • 1) window: Global Context. 브라우저 창 객체
  • 2) screen: 사용자 환경의 디스플레이 정보 객체
  • 3) location: 현재 페이지의 url을 다루는 객체
  • 4) navigator: 웹브라우저 및 브라우저 환경 정보 객체
  • 5) history: 현재의 브라우저가 접근했던 URL history

 

beforeunload이벤트를 사용하면 페이지를 벗어날 때 확인 메세지를 표시할 수 있습니다. 단, 크롬에서는 경고창에 문구`가 나타나진 않습니다.

window.onbeforeunload = function() { return '작성 중인 메시지가 있습니다.' }

 

 정리

  • BOM은 웹 브라우저의 기능들을 객체처럼 다루는 모델이다.
  • 정의된 표준이 없어 브라우저 제작사마다 구현이 다르다.
  • BOM에서 제공하는 API를 적극 활용하면, 사용자 경험을 향상시킬 수 있다.
반응형

'HTML' 카테고리의 다른 글

브라우저 동작 원리  (0) 2020.12.22
    'HTML' 카테고리의 다른 글
    • 브라우저 동작 원리
    freddy
    freddy

    티스토리툴바