26 lines
1.9 KiB
Markdown
26 lines
1.9 KiB
Markdown
- Browser Object Model
|
|
- Прослойка между ядром и [[DOM]]
|
|
- Основное предназначение - управление окнами браузера и обеспечение их взаимодействия
|
|
- Специфична для каждого [[Браузер|браузера]]
|
|
- Каждое из окон браузера представляется объектом `window`
|
|
```JavaScript
|
|
var contentsWindow;
|
|
contentsWindow = window.open("http://cs.ifmo.ru", "contents");
|
|
```
|
|
## Возможности BOM
|
|
- управление фреймами
|
|
- поддержка задержки в исполнении кода и зацикливания с задержкой
|
|
- системные диалоги
|
|
- управление адресом открытой страницы
|
|
- управление информацией о браузере
|
|
- управление информацией о параметрах монитора
|
|
- ограниченное управление историей просмотра страниц
|
|
- поддержка работы с HTTP cookie
|
|
## Главные API
|
|
1. `navigator` - информация о клиенте (ОС, версия браузера, геолокация, язык)
|
|
2. `location` - работа с URL-адресом текущей вкладки
|
|
- `location.href = "https://itmo.ru` - редирект на другую страницу (синхронный)
|
|
- Чтение параметров из URL (`?id=5&user=admin`)
|
|
3. `history` - управление историей сессии. Позволяет ходить вперед/назад или менять URL в строке без перезагрузки страницы (основа для React/Vue)
|
|
4. `localStorage`/`sessionStorage` - встроенная key-value база данных в браузере
|
|
5. Блокирующие диалоги: `alert()`, `confirm()`, `prompt()` |