Pull to refresh
4K+
3
Дмитрий Рябчунов@RyDVi

Фронтенд (React) разработчик

Send message

Chrome изменил работу window.open с несколькими мониторами

Раньше в Chrome можно было открыть окно на втором мониторе обычным window.open, передав его координаты:

window.open(url, '_blank', 'left=1920,top=0');

Теперь Chrome может ограничить позицию окна текущим экраном, если сайту не выдано разрешение «Управление окнами» (window-management). При этом в Firefox старый вариант продолжает работать.

Современное решение — Window Management API:

const details = await window.getScreenDetails();

const screen = details.screens.find(
  x => x !== details.currentScreen
);

window.open(
  url,
  '_blank',
  `left=${screen.availLeft},top=${screen.availTop}`
);

Главный нюанс: вызов getScreenDetails() запрашивает разрешение на управление окнами. После его выдачи Chrome снова позволяет корректно размещать окно на другом мониторе.

P.S. это изменение уже упоминалось в версии 135.0.7049.116 - ссылка

Tags:
+5
Comments0

Information

Rating
2,185-th
Location
Россия
Date of birth
Registered
Activity

Specialization

Фронтенд разработчик, Веб-разработчик
Старший
Git
Python
REST
React
MobX
TypeScript
Django
JavaScript
Node.js
Веб-разработка