ScreenDetails
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.
Экспериментальная: Это экспериментальная технология экспериментальная технология
Перед использованием в продакшене внимательно проверьте таблицу совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Интерфейс ScreenDetails из API управления окнами представляет детали всех экранов, доступных устройству пользователя.
Доступ к этой информации осуществляется через метод Window.getScreenDetails().
Примечание: ScreenDetails — это живой объект, что означает, что он обновляется по мере изменения доступных экранов. Поэтому вы можете продолжать запрашивать тот же объект для получения обновлённых значений, вместо многократного вызова getScreenDetails().
Свойства экземпляра
Наследует свойства от своего родителя, 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 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 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