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;

методи

Метод Опис
open Відкриває нове вікно чи вкладку.
setTimeout Виконує функцію один раз після затримки.
setInterval Виконує функцію періодично.
clearTimeout Скасовує setTimeout.
clearInterval Скасовує setInterval.
requestAnimationFrame Виконує функцію перед наступним перемалюванням.
matchMedia Перевіряє медіа-запит із JavaScript.
getComputedStyle Обчислені CSS-стилі елемента.
scrollTo Прокручує документ до заданих координат.
alert Модальне вікно з повідомленням.
confirm Модальне вікно з питанням; повертає true/false.
prompt Модальне вікно з полем введення.
postMessage Безпечно передає повідомлення між вікнами.

властивості

Властивість Опис
location Адреса поточної сторінки (об'єкт Location).
localStorage Постійне сховище ключ–значення цього походження.
sessionStorage Сховище на час сесії вкладки.
history Історія сесії (об'єкт History).
navigator Інформація про браузер (об'єкт Navigator).
innerWidth Ширина області перегляду разом зі смугою прокрутки.
innerHeight Висота області перегляду.
scrollY Вертикальна прокрутка документа в пікселях.
scrollX Горизонтальна прокрутка документа в пікселях.
devicePixelRatio Співвідношення фізичних пікселів до CSS-пікселів.
parent Батьківське вікно для фрейма.
opener Вікно, що відкрило поточне.

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
Window 1+ 1+ 1+ 3+ 12+ 4+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
Window yes yes yes yes

Приклади

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

Розміри, прокрутка й перевірка медіазапиту з 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

Коментарі

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

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

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

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

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