JavaScript window.navigator — інформація про браузер


Об'єкт navigator описує браузер і пристрій: мову, стан мережі, доступ до буфера обміну, геолокацію.

автор: NagarD

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

Історично з нього читали userAgent — рядок із назвою браузера — і будували на цьому логіку. Сьогодні це вважається антипаттерном: рядок можна підмінити, він переповнений брехнею заради сумісності, а нових браузерів у ньому не передбачиш.

Правильний шлях — перевіряти саму можливість, а не ім'я браузера: if ('share' in navigator).

Зате в ньому живуть по-справжньому корисні речі: navigator.clipboard (робота з буфером обміну), navigator.share (нативне вікно «Поділитись» на мобільних), navigator.onLine (чи є мережа), navigator.language (мова інтерфейсу користувача).

автор: NagarD

Порада

Замість «який це браузер?» питай «чи вміє він те, що мені треба?». Перевірка можливості не застаріє, а список назв браузерів застаріє завтра.

автор: NagarD

Переглядачі

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

Приклади

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

Копіювання в буфер, «Поділитись» і мова користувача.

HTML

<button id="copy">Скопіювати</button>

JS

// top-level await працює лише в модулях — тут той самий код в async-функції
(async () => {
    console.log(navigator.language); // 'uk' або 'uk-UA'
    console.log(navigator.onLine);   // false, якщо мережі немає

    // копіювання в буфер
    document.getElementById('copy').addEventListener('click', async () => {
        await navigator.clipboard.writeText(location.href);
        console.log('Скопійовано');
    });

    // перевіряємо МОЖЛИВІСТЬ, а не назву браузера
    if ('share' in navigator) {
        await navigator.share({ title: 'Довідник', url: location.href });
    }
})();
автор: NagarD

Коментарі

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

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

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

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

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

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

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

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

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

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

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