JavaScript Window — глобальний об'єкт браузера


Window — глобальний об'єкт браузера. Усе, що в скрипті доступне «просто так», насправді лежить у ньому.

автор: NagarD

Загальний опис

document, location, localStorage, setTimeout, fetch, alert — це все властивості й методи вікна. Просто window. можна не писати: він мається на увазі.

Це означає, що будь-яка глобальна змінна, оголошена через var чи без оголошення взагалі, теж стає властивістю вікна — і саме тому глобальні змінні так легко затирають одна одну.

З вікна беруть розміри області перегляду (innerWidth/innerHeight), позицію прокрутки (scrollY), відкривають нові вкладки (open()), слухають зміну розміру.

Важливо: у Web Worker об'єкта window немає — там глобальний об'єкт зветься self. Тому універсальний код пишуть саме через self або globalThis.

автор: NagarD

Порада

Розмір вікна для CSS-подібних перевірок бери не з innerWidth, а через window.matchMedia('(min-width: 768px)') — так JavaScript і CSS не розійдуться в оцінці «мобільний чи ні».

автор: NagarD

Синтаксис

window.innerWidth;

методи

Метод Опис
atob Перетворює закодований у base-64 рядок на рядок ASCII.
blur Відміняє фокусування з обраного елемента на веб-сторінці.
close Закриває вікно браузера, яке було відкрито за допомогою JavaScript.
btoa Кодує рядок до формату base-64.
moveBy Переміщує вікно браузера на вказану кількість пікселів відносно поточного положення.
print Викликає діалогове вікно друку для поточного вікна браузера.
resizeBy Змінює розміри вікна на вказану величину.
resizeTo Змінює розміри вікна на конкретні величини ширини та висоти.
focus Дає фокус конкретному HTML-елементу, дозволяючи взаємодіяти з ним.
moveTo Задає абсолютне положення вікна браузера на екрані.
scrollBy Додає зазначену кількість пікселів до поточної позиції прокрутки вікна.
open Відкриває нове вікно браузера або вкладку.
alert Виводить модальне діалогове вікно з текстовим повідомленням.
stop Зупиняє виконання скрипта та завершує завантаження документа у вікні браузера.
setTimeout Затримує виконання функції чи коду на заданий інтервал часу перед викликом.
postMessage Безпечно передає повідомлення між вікнами.
requestAnimationFrame Виконує функцію перед наступним перемалюванням.
removeEventListener Видаляє обробник подій, що раніше був прикріплений через addEventListener().
clearInterval Зупиняє виконання повторюваних дій, заданих за допомогою setInterval().
clearTimeout Скасовує виконання запланованої дії, встановленої за допомогою setTimeout().
confirm Відображає модальне вікно з повідомленням та кнопками "ОК" та "Скасувати".
getComputedStyle Повертає об'єкт, що містить значення усіх CSS властивостей елемента.
matchMedia Перевіряє, чи задовольняють вказані медіа-запити параметрам вікна переглядача.
prompt Викликає вікно для введення користувачем текстових даних.
scrollTo Встановлює абсолютну позицію прокрутки до вказаних координат на сторінці.
setInterval Встановлює повторюване викликання функції з інтервалом часу у глобальному контексті.
addEventListener Додає обробник події до визначеного об'єкта.

властивості

Властивість Опис
name Визначає або повертає ім'я поточного вікна.
screenX Повертає горизонтальну координату вікна відносно екрану користувача.
screenY Повертає вертикальну позицію вікна відносно екрану користувача.
status Надає доступ до статусного рядка вікна для відображення короткого повідомлення сторінки.
console Використовується для виводу інформації у консоль розробника веб-браузера.
defaultStatus Встановлює або повертає стандартне повідомлення статусу для вікна браузера.
document Представляє веб-сторінку, надаючи доступ до її вмісту та структури.
frameElement Повертає елемент, в якому вбудовано поточне вікно.
frames Дозволяє доступ до колекції усіх фреймів у поточному вікні.
top Надає доступ до верхнього рівня вікна для маніпуляцій із контекстом.
location Вказує поточну URL-адресу документа.
outerHeight Визначає зовнішню висоту вікна браузера, включаючи рамки.
outerWidth Повертає ширину зовнішнього розміру вікна браузера.
pageXOffset Забезпечує відступ горизонтальної прокрутки вікна браузера.
pageYOffset Забезпечує вертикальний відступ прокрутки вікна браузера.
history Дозволяє взаємодіяти з історією перегляду веб-сторінок браузера.
screen Надає інформацію про екран, таку як ширина та висота.
navigator Інформація про браузер (об'єкт Navigator).
devicePixelRatio Співвідношення фізичних пікселів до CSS-пікселів.
closed Перевіряє, чи було закрите вікно браузера.
innerHeight Забезпечує висоту вікна перегляду браузера в пікселях.
innerWidth Забезпечує ширину внутрішньої області перегляду вікна браузера.
localStorage Дозволяє зберігати дані локально в браузері користувача.
opener Забезпечує посилання на вікно, яке відкрило поточне вікно.
parent Надає доступ до батьківського вікна чи фрейму веб-сайту.
scrollX Повертає горизонтальну позицію прокрутки вікна користувача на сторінці.
scrollY Повертає вертикальну позицію прокрутки вікна користувача на сторінці.
sessionStorage Зберігає дані у віконному сховищі сесії для тимчасового зберігання даних між сторінками.
screenLeft Повертає горизонтальне положення вікна на екрані у пікселях.
screenTop Повертає верхню координату вікна відносно екрану користувача.
self Повертає посилання на поточне вікно браузера чи фрейм безпосередньо з коду.

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 3 12 4
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
1 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0* 1.0

Приклади

+ запропонувати свій приклад у пісочниці

Розміри, прокрутка й перевірка медіазапиту з JavaScript.

console.log(window.innerWidth, window.innerHeight); // область перегляду
console.log(window.scrollY);                        // прокрутка згори

// це все — теж window
window.setTimeout(() => console.log('через секунду'), 1000);
console.log(window.location.pathname);

// узгоджено з CSS, на відміну від порівняння innerWidth
const isDesktop = window.matchMedia('(min-width: 768px)');

console.log(isDesktop.matches);
isDesktop.addEventListener('change', event => {
    console.log(event.matches ? 'десктоп' : 'мобільний');
});

// у Worker window немає — там self
console.log(globalThis === window); // true на сторінці
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід