BOM - Объектная модель браузера

Объектная модель браузера (BOM от англ. Browser Object Model) позволяет JavaScript "общаться" с браузером.

Объектная модель браузера (BOM)

Не существует каких-либо официальных стандартов для Объектной модели браузера (BOM).

Так как современные браузеры реализуют (почти) одни и те же методы и свойства для JavaScript интерактивно, их часто относят к методам и свойствам BOM.

Объект window

Объект window поддерживается всеми браузерами. Он представляет окно браузера.

Все глобальные JavaScript объекты, функции и переменные автоматически становятся членами объекта window.

Глобальные переменные являются свойствами объекта window.

Глобальные функции являются методами объекта window.

Даже объект document (в HTML DOM) является свойством объекта window:


window.document.getElementById("header"); 

то же самое что:


document.getElementById("header"); 

Размер окна

Чтобы определить размер окна браузера, можно использовать два свойства.

Оба свойства возвращают размер в пикселях:

  • window.innerHeight – внутренняя высота окна браузера (в пикселях)
  • window.innerWidth – внутренняя ширина окна браузера (в пикселях)

Окно браузера (область просмотра) не включает панель инструментов и полосу прокрутки.

Свойства для Internet Explorer 8, 7, 6, 5:

  • document.documentElement.clientHeight
  • document.documentElement.clientWidth

или

  • document.body.clientHeight
  • document.body.clientWidth

Практическое решение JavaScript (охватывает все браузеры):


var w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;

var h = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight; 

В примере вычисляется высота и ширина окна браузера (не включая панель инструментов и полосу прокрутки).

Другие методы объекта window:

  • window.open() - открывает новое окно
  • window.close() - закрывает текущее окно
  • window.moveTo() - передвигает текущее окно
  • window.resizeTo() - изменяет размер текущего окна