JavaScript Window — глобальний об'єкт браузера
Window — глобальний об'єкт браузера. Усе, що в скрипті доступне «просто так», насправді лежить у ньому.
Загальний опис
document, location, localStorage, setTimeout, fetch, alert — це все властивості й методи вікна. Просто window. можна не писати: він мається на увазі.
Це означає, що будь-яка глобальна змінна, оголошена через var чи без оголошення взагалі, теж стає властивістю вікна — і саме тому глобальні змінні так легко затирають одна одну.
З вікна беруть розміри області перегляду (innerWidth/innerHeight), позицію прокрутки (scrollY), відкривають нові вкладки (open()), слухають зміну розміру.
Важливо: у Web Worker об'єкта window немає — там глобальний об'єкт зветься self. Тому універсальний код пишуть саме через self або globalThis.
- Порада
-
Розмір вікна для CSS-подібних перевірок бери не з
автор: NagarDinnerWidth, а черезwindow.matchMedia('(min-width: 768px)')— так JavaScript і CSS не розійдуться в оцінці «мобільний чи ні».
Синтаксис
window.innerWidth;
методи
| Метод | Опис |
|---|---|
| atob | Перетворює закодований у base-64 рядок на рядок ASCII. |
| blur | Відміняє фокусування з обраного елемента на веб-сторінці. |
| close | Закриває вікно браузера, яке було відкрито за допомогою JavaScript. |
| btoa | Кодує рядок до формату base-64. |
| moveBy | Переміщує вікно браузера на вказану кількість пікселів відносно поточного положення. |
| Викликає діалогове вікно друку для поточного вікна браузера. | |
| 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 | Повертає посилання на поточне вікно браузера чи фрейм безпосередньо з коду. |
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 3 | 12 | 4 |
| Переглядач | ||||
|---|---|---|---|---|
| 1 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 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 на сторінці
Коментарі
Коментарів ще немає — будьте першим!