Window: getScreenDetails() method
{{APIRef("Window Management API")}}{{SeeCompatTable}}{{securecontext_header}}
The getScreenDetails() method of the
{{domxref("Window")}}Window interface returns a {{jsxref("Promise")}}Promise that fulfills with a {{domxref("ScreenDetails")}}ScreenDetails object instance representing the details of all the screens available to the user's device.
Syntax
getScreenDetails()
Parameters
None.
Return value
A {{jsxref("Promise")}}Promise that fulfills with a {{domxref("ScreenDetails")}}ScreenDetails object instance.
Exceptions
NotAllowedError{{domxref("DOMException")}}DOMException- : Thrown if a
{{httpheader("Permissions-Policy/window-management", "window-management")}}management Permissions-Policy is set that blocks use of the Window Management API, or if the user has explicitly denied the browser's permission request to use the API.
- : Thrown if a
Examples
When getScreenDetails() is invoked, the user will be asked for permission to manage windows on all their displays (the status of this permission can be checked using {{domxref("Permissions.query()")}} to query window-management). Provided they grant permission, the resulting {{domxref("ScreenDetails")}}ScreenDetails object contains details of all the screens available to the user's system.
The below example opens a full-size window on each available display.
const screenDetails = await window.getScreenDetails();
// Open a full-size window on each screen available to the device
for (const screen of screenDetails.screens) {
window.open(
"https://example.com",
"_blank",
`left=${screen.availLeft},
top=${screen.availTop},
width=${screen.availWidth},
height=${screen.availHeight}`,
);
}
[!NOTE]NOTE: See Multi-window learning environment for a full example (see the source code also).
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}