JavaScript Screen isExtended Property

Beginner
⏱️ 12 min read
📚 Updated: Jul 2026
🎯 5 Examples
🚀 5 Try-it labs
Experimental
Instance property

What You’ll Learn

Screen.isExtended is a read-only instance property that returns true when the device has multiple screens and false otherwise. Learn when to use it before multi-window layouts, how Permissions-Policy can force false, and how to feature-detect safely—with five examples and try-it labs.

01

Kind

Read-only property

02

Returns

Boolean

03

Access

window.screen

04

Status

Experimental

05

Context

Secure (HTTPS)

06

API family

Window Management

Introduction

Many people use two (or more) monitors. The Window Management API helps web apps place windows across those displays. Before you try a fancy multi-screen layout, you can ask: “Does this device even have more than one screen?”

That question is exactly what window.screen.isExtended answers: true for multiple screens, false for a single screen (or when the API is blocked / missing).

JavaScript
console.log(window.screen.isExtended);
💡
Beginner tip

On browsers without the property, reading it without a check can throw or return undefined. Always feature-detect first (see the examples below).

Understanding the Property

MDN: the isExtended read-only property of the Screen interface returns true if the user’s device has multiple screens, and false if not. It is typically accessed via window.screen.isExtended.

  • Instance — on window.screen.
  • Read-only — you cannot assign to isExtended.
  • Boolean — multi-screen (true) vs not (false).
  • Experimental — limited browser support; not Baseline.
  • Secure context — HTTPS / localhost where supported.

📝 Syntax

JavaScript
const multi = window.screen.isExtended;
// same as (when supported):
const multi2 = screen.isExtended;

Value

A boolean: true if the device has multiple screens, false otherwise. If a window-management Permissions-Policy blocks the Window Management API, MDN says isExtended always returns false.

🖥️ Window Management & Multi-Screen Layouts

MDN recommends testing isExtended before attempting a multi-window, multi-screen layout with the Window Management API. Think of it as a cheap gate:

JavaScript
if (window.screen.isExtended) {
  // Create multi-screen window layout
} else {
  // Create single-screen window layout
}
🔒
Permissions-Policy tip (MDN)

Sites or embedders can set a policy that blocks Window Management. Then isExtended stays false even on a dual-monitor PC. Treat false as “do not assume multi-screen APIs are usable,” not only as “one physical monitor.”

🛡️ Feature Detection Pattern

Because support is limited, wrap reads in a small helper. Unsupported browsers should fall back to a single-screen path.

JavaScript
function getIsExtended() {
  if (!("isExtended" in window.screen)) {
    return { supported: false, value: false };
  }
  return { supported: true, value: Boolean(window.screen.isExtended) };
}

const info = getIsExtended();
console.log(info.supported, info.value);

⚡ Quick Reference

GoalCode
Read multi-screen flagscreen.isExtended
MDN layout branchif (screen.isExtended) { … }
Feature-detect"isExtended" in screen
Policy blockedAlways false (MDN)
Secure contextHTTPS / localhost
MDN statusExperimental · Limited availability

🔍 At a Glance

Four facts about screen.isExtended.

Kind
property

Read-only

Type
boolean

Multi-screen?

Via
window.screen

Screen object

Status
experimental

Not Baseline

Examples Gallery

Examples follow MDN Screen.isExtended. On unsupported browsers, feature-detect demos still print a clear message.

📚 Getting Started

Detect support, then read the boolean safely.

Example 1 — Feature-Detect and Read

Check whether isExtended exists before reading it.

JavaScript
if ("isExtended" in window.screen) {
  console.log(window.screen.isExtended);
  console.log(typeof screen.isExtended);
} else {
  console.log("isExtended not supported");
}
Try It Yourself

How It Works

The in operator avoids errors on engines that omit the property. When supported, the value is a boolean.

Example 2 — MDN Multi- vs Single-Screen Branch

Choose a layout path based on the flag (with a support check).

JavaScript
if (!("isExtended" in window.screen)) {
  console.log("Create single-screen window layout (API missing)");
} else if (window.screen.isExtended) {
  console.log("Create multi-screen window layout");
} else {
  console.log("Create single-screen window layout");
}
Try It Yourself

How It Works

Matches the MDN example, plus a missing-API branch so beginners get a clear result everywhere.

📈 Labels, Policy Notes & Snapshots

Explain the boolean and combine it with other Screen metrics.

Example 3 — Friendly Status Label

Turn support + value into a short human-readable string.

JavaScript
function labelIsExtended() {
  if (!("isExtended" in screen)) {
    return "unsupported (treat as single-screen)";
  }
  return screen.isExtended
    ? "multiple screens detected"
    : "single screen (or multi-screen blocked)";
}

console.log(labelIsExtended());
Try It Yourself

How It Works

The label reminds learners that false can mean one monitor or a blocked Window Management permission—not only hardware.

Example 4 — Remember the Permissions-Policy Caveat

Document why false is not always “one monitor.”

JavaScript
const supported = "isExtended" in screen;
const value = supported ? screen.isExtended : null;

console.log({
  supported,
  isExtended: value,
  note: "If window-management policy blocks the API, isExtended is always false (MDN)."
});
Try It Yourself

How It Works

Logging a short note next to the value helps QA and learners avoid incorrect conclusions on locked-down embeds.

Example 5 — isExtended Plus Screen Size Snapshot

Combine the flag with common Screen metrics for diagnostics.

JavaScript
console.log({
  isExtended: "isExtended" in screen ? screen.isExtended : "(unsupported)",
  width: screen.width,
  height: screen.height,
  availWidth: screen.availWidth,
  availHeight: screen.availHeight,
  colorDepth: screen.colorDepth
});
Try It Yourself

How It Works

Pair the experimental flag with baseline properties like height and colorDepth for a fuller Screen dump.

🚀 Common Use Cases

  • Gate multi-window / multi-screen layouts (Window Management API).
  • Show a “dual monitor recommended” tip in creative tools.
  • Diagnostics panels that dump Screen capabilities.
  • Teaching experimental Screen APIs vs baseline size properties.
  • Failing open to a single-screen UI when support or policy is missing.

🔧 How It Works

1

OS knows attached displays

One monitor or several connected screens.

OS
2

Browser exposes Window Management

May provide Screen.isExtended in a secure context.

API
3

You feature-detect and read

true = multiple screens; false = single or blocked.

Read
4

Pick a layout path

Multi-screen only when supported and true; else single-screen.

📝 Notes

  • Experimental and Limited availability (MDN)—not Baseline.
  • Not Deprecated or Non-standard—Experimental banner only.
  • Secure context required where the property is available.
  • Permissions-Policy window-management can force false.
  • Related: height, availHeight, Window hub, JavaScript hub.

Limited / Experimental Support

Screen.isExtended belongs to the experimental Window Management API and is not Baseline. It requires a secure context where supported. Always feature-detect and keep a single-screen fallback. Logos use the shared browser-image-sprite.png sprite from this project.

Experimental · Not Baseline

Screen.isExtended

Boolean multi-screen hint — true when multiple screens are available and Window Management is allowed.

Limited Experimental
Google Chrome Window Management / Chromium — feature-detect
Limited
Microsoft Edge Follow Chromium Window Management support
Limited
Opera Follow Chromium support where available
Limited
Mozilla Firefox Typically unavailable — feature-detect
Unavailable
Apple Safari Typically unavailable — feature-detect
Unavailable
Internet Explorer No isExtended support
Unavailable
isExtended Limited

Bottom line: Detect "isExtended" in screen, read the boolean only when present, treat false as single-screen or blocked, and never require multi-monitor layouts for core UX.

Conclusion

window.screen.isExtended is an experimental boolean that hints whether multiple screens are available before you attempt Window Management multi-window layouts. Feature-detect, respect secure contexts and Permissions-Policy, and always keep a single-screen path.

Continue with mozBrightness, height, Window methods, or the JavaScript hub.

💡 Best Practices

✅ Do

  • Feature-detect with "isExtended" in screen
  • Use HTTPS / localhost (secure context)
  • Branch to multi-screen only when the value is true
  • Keep a solid single-screen layout fallback
  • Remember Permissions-Policy can force false

❌ Don’t

  • Assign to isExtended (it is read-only)
  • Assume every browser supports the property
  • Require multi-monitor layouts for core product flows
  • Treat false as proof of exactly one physical monitor
  • Skip checking MDN compatibility for production apps

Key Takeaways

Knowledge Unlocked

Five things to remember about isExtended

Experimental multi-screen boolean on Screen.

5
Core concepts
02

Boolean

multi-screen?

Value
🛡️ 03

Detect first

limited support

Safety
🔒 04

HTTPS

secure context

Context
🔬 05

Experimental

not Baseline

Status

❓ Frequently Asked Questions

A read-only boolean: true if the device has multiple screens, false if not. Access it as window.screen.isExtended when the API exists.
MDN marks Screen.isExtended as Experimental and Limited availability (not Baseline). It is not Deprecated or Non-standard.
Yes in supporting browsers: MDN lists it as available only in secure contexts (HTTPS or localhost).
MDN: if a Permissions-Policy blocks the Window Management API (window-management), isExtended always returns false—even on multi-monitor setups.
No. It is read-only. You read the boolean; you do not assign to it.
Feature-detect with "isExtended" in window.screen (or typeof screen.isExtended !== "undefined"). Fall back to a single-screen layout when unsupported.
Did you know?

isExtended only tells you whether multiple screens exist (and are allowed to be reported). Placing windows on a specific monitor uses other Window Management APIs such as getScreenDetails()—always behind permission prompts and feature checks.

Next: Screen.mozBrightness

Learn the deprecated non-standard backlight brightness property.

mozBrightness →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

5 people found this page helpful