Spec-Zone.ru › Web APIs

ScreenDetails

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Экспериментальная: Это экспериментальная технология экспериментальная технология
Перед использованием в продакшене внимательно проверьте таблицу совместимости с браузерами.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.

Интерфейс ScreenDetails из API управления окнами представляет детали всех экранов, доступных устройству пользователя.

Доступ к этой информации осуществляется через метод Window.getScreenDetails().

Примечание: ScreenDetails — это живой объект, что означает, что он обновляется по мере изменения доступных экранов. Поэтому вы можете продолжать запрашивать тот же объект для получения обновлённых значений, вместо многократного вызова getScreenDetails().

EventTarget ScreenDetails

Свойства экземпляра

Наследует свойства от своего родителя, EventTarget.

currentScreen Только чтение Экспериментально

Один объект ScreenDetailed, представляющий подробную информацию о экране, на котором отображается текущее окно браузера.

screens Только чтение Экспериментально

Массив объектов ScreenDetailed, каждый из которых представляет подробную информацию об одном конкретном экране, доступном устройству пользователя.

Примечание: screens включает только "расширенные" дисплеи, а не те, которые дублируют другой дисплей.

События

currentscreenchange Экспериментально

Срабатывает, когда текущий экран окна меняется каким-либо образом — например, доступная ширина или высота, или ориентация.

screenschange Экспериментально

Срабатывает, когда экраны подключаются или отключаются от системы.

Примеры

Примечание: См. среду обучения для работы с несколькими окнами для полного примера (см. также исходный код).

Доступ к базовой информации о экранах

При вызове Window.getScreenDetails() пользователя попросят предоставить разрешение на управление окнами на всех его дисплеях (статус этого разрешения можно проверить, используя Permissions.query() для запроса window-management). Если пользователь предоставит разрешение, будет возвращён объект ScreenDetails. Этот объект содержит подробную информацию обо всех доступных экранах системы пользователя.

Пример ниже открывает окно полного размера на каждом доступном экране.

const screenDetails = await window.getScreenDetails();

// Open a window on each screen of the device
for (const screen of screenDetails.screens) {
  openWindow(
    screen.availLeft,
    screen.availTop,
    screen.availWidth,
    screen.availHeight,
    url,
  );
}

Обработка изменений в доступных экранах

Вы можете использовать событие screenschange для обнаружения изменений в доступных экранах (например, при подключении или отключении экрана), сообщения об изменении и обновления расположения окон в соответствии с новой конфигурацией:

const screenDetails = await window.getScreenDetails();

// Return the number of screens
let noOfScreens = screenDetails.screens.length;

screenDetails.addEventListener("screenschange", () => {
  // If the new number of screens is different to the old number of screens,
  // report the difference
  if (screenDetails.screens.length !== noOfScreens) {
    console.log(
      `The screen count changed from ${noOfScreens} to ${screenDetails.screens.length}`,
    );

    // Update noOfScreens value
    noOfScreens = screenDetails.screens.length;
  }

  // Open, close, or rearrange windows as needed,
  // to fit the new screen configuration
  updateWindows();
});

Спецификации

Спецификация
Управление окнами
# api-screendetails-interface

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
ScreenDetails 100 100 Нет 86 Нет Нет Нет Нет Нет Нет Нет
currentScreen 100 100 Нет 86 Нет Нет Нет Нет Нет Нет Нет
currentscreenchange_event 100 100 Нет 86 Нет Нет Нет Нет Нет Нет Нет
screens 100 100 Нет 86 Нет Нет Нет Нет Нет Нет Нет
screenschange_event 100 100 Нет 86 Нет Нет Нет Нет Нет Нет Нет

См. также

  • API управления окнами

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ScreenDetails

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API