[JS] 브라우저 객체 모델(BOM)
목차
BOM (Browser Object Model)
브라우저 객체 모델(BOM)이란?
자바스크립트를 이용하면 브라우저의 정보에 접근하거나 브라우저의 여러 기능들을 제어할 수 있습니다. 이때 사용하는 객체 모델이 바로 브라우저 객체 모델(BOM, Browser Object Model) 입니다.
- BOM은 문서 객체 모델(DOM)과는 달리 W3C의 표준 객체 모델은 아닙니다.
- 하지만 자바스크립트가 브라우저의 기능적인 요소들을 직접 제어하고 관리할 방법을 제공해 줍니다.
- 자바스크립트에서는 이러한 BOM의 객체들을 전역 객체(global object) 로 사용할 수 있습니다.
Window 객체
window 객체는 웹 브라우저의 창(window)을 나타내는 객체입니다.
- 자바스크립트의 모든 객체, 전역 함수, 전역 변수들은 자동으로
window객체의 프로퍼티가 됩니다. window객체의 메소드는 전역 함수이며, 프로퍼티는 전역 변수가 됩니다.- 문서 객체 모델(DOM)의 요소들도 모두
window객체의 프로퍼티가 됩니다.
주요 기능
| 기능 | 사용 방법 |
|---|---|
| 새 창 열기 | window 객체의 open() 메소드를 이용하면 새로운 브라우저 창을 열 수 있습니다. |
| 창 크기 조절 | innerHeight, innerWidth 프로퍼티를 이용하면 브라우저 창의 크기를 설정할 수 있습니다. |
| 창 닫기 | close() 메소드를 이용하면 현재 또는 특정 브라우저 창을 닫을 수 있습니다. |
Document 객체
window 객체의 가장 중요한 프로퍼티 중 하나가 바로 document 객체입니다.
document 객체는 브라우저 창에 표시되는 내용에 해당하는 문서(document)를 나타내는 객체입니다.
Location 객체
location 객체는 현재 브라우저에 표시된 HTML 문서의 주소를 얻거나, 브라우저에 새 문서를 불러올 때 사용할 수 있습니다.
- 이 객체는 Window 객체의
location프로퍼티와 Document 객체의location프로퍼티에 함께 연결되어 있습니다. - 프로퍼티와 메소드를 이용하면 현재 문서의 URL 주소를 다양하게 해석하여 처리할 수 있습니다.
주요 프로퍼티
| 프로퍼티 | 반환 값 |
|---|---|
href | 현재 문서의 전체 URL 주소를 문자열로 반환 |
hostname | 현재 문서의 인터넷 호스트 이름을 반환 |
pathname | 현재 문서의 파일 경로명을 반환 |
주요 메소드
| 메소드 | 동작 |
|---|---|
assign() | 지정된 URL 주소에 존재하는 문서를 브라우저 창에 불러옵니다. |
replace() | 새 문서를 불러오기 전에 현재 문서를 히스토리에서 제거합니다. (이 점이 assign()과 다릅니다.) |
reload() | 브라우저 창에 현재 문서를 다시 불러옵니다. |
Navigator 객체
navigator 객체는 브라우저 공급자 및 버전 정보 등, 브라우저에 대한 다양한 정보를 저장하는 객체입니다.
대화 상자(dialog box)
사용자에게 보여줄 수 있는 간단한 대화 상자를 만들기 위해 window 객체는 다음과 같은 메소드를 제공합니다.
-
alert()- 사용자에게 간단한 메시지를 보여주고, 그에 대한 사용자의 확인을 기다립니다.
-
confirm()- 사용자에게 간단한 메시지를 보여주고, 사용자가 확인이나 취소를 누르면 그 결과를 불리언 값으로 반환합니다.
- 확인을 누르면
true, 취소를 누르면false를 반환합니다.
-
prompt()- 사용자에게 간단한 메시지를 보여주고, 사용자가 입력한 문자열을 반환합니다.
- 입력한 텍스트를 문자열 타입으로 반환합니다.
단, 이러한 대화 상자는 모두 사용자의 응답이 있을 때까지 브라우저의 실행을 강제로 중단시킵니다. 사용자 측면에서 보면 불편할 수 있으므로, 대화 상자는 될 수 있으면 자주 사용하지 않는 것이 좋습니다.
타이머(timer)
window 객체는 일정 시간이 지난 뒤에 함수를 호출할 수 있도록 다음 메소드를 제공합니다.
-
setTimeout()- 명시된 시간이 지난 뒤에 지정된 함수를 호출합니다.
- 성공적으로 호출되면 설정된
timeoutID를 반환합니다. - 밀리초(milliseconds) 단위로 지연 시간을 설정할 수 있습니다.
-
setInterval()- 지정된 시간 간격마다 지정된 함수를 반복적으로 호출합니다.
- 사용 형식:
window.setInterval(호출할함수, 지연시간); - 성공적으로 호출되면 설정된
timeoutID를 반환합니다. - 밀리초(milliseconds) 단위로 시간 간격을 설정할 수 있습니다.
-
clearTimeout()setTimeout()의 반환값을 인수로 전달하면, 계획된 함수의 호출을 취소할 수 있습니다.
-
clearInterval()setInterval()의 반환값을 인수로 전달하면, 반복되는 함수의 호출을 취소할 수 있습니다.