navigator.presentation is a read-only property that returns a Presentation object — the entry point to the Presentation API for controlling or receiving content on another screen (MDN).
Read the notes below before you rely on this property. Prefer feature detection when support is limited.
Syntax
Use navigator.presentation. Start with this line.
JavaScript
navigator.presentation
Call
What it does
navigator.presentation
Primary signature.
Built into the browser. Read navigator.presentation on Navigator — no import required.
Library declarations
JavaScript
navigator.presentation
Parameters
Parameter
Description
defaultRequest
Optional. PresentationRequest for controlling UAs
HTTPS
Required. Secure-context requirement
Return Value
Return Value
Description
*
The current value of navigator.presentation.
JavaScript Examples
Example 1 — Feature-Detect Support
Check whether the Presentation API entry point exists.
JavaScript
if ("presentation" in navigator) {
console.log("presentation available");
} else {
console.log("presentation missing");
}
presentation missing
/* or: presentation available */
How It Works
Use in. Checks whether the property exists on navigator.
Supported path. You can safely read navigator.presentation.
Missing path. Hide cast UI and keep a single-screen experience.
Rule. Always detect before touching receiver or defaultRequest.
Example 2 — Idle vs Receiving (MDN)
MDN’s pattern: show whether this page is receiving a presentation.
JavaScript
if ("presentation" in navigator) {
const status = navigator.presentation.receiver
? "Receiving presentation"
: "(idle)";
console.log(status);
} else {
console.log("Presentation API is not available in this browser.");
}
Secure context. MDN requires HTTPS (or localhost) where supported.
API flag. Separate from HTTPS — both must line up for casting flows.
Log both. Helps debug “API missing” vs “insecure page” issues.
Production tip. Never assume casting works on plain HTTP.
Compatibility
Browser Support
navigator.presentation has limited availability and is not Baseline. The Presentation interface is Experimental. Always feature-detect and provide a non-presentation fallback.
✓ Experimental · Limited availability
Navigator.presentation
Entry point to the Presentation API. Best used first for feature checking and receiver vs idle status. Requires a secure context where supported.
LimitedNot Baseline
Google ChromePartial / Chromium Presentation API support
Partial
Mozilla FirefoxLimited or unavailable
Limited
Apple SafariLimited or unavailable
Limited
Microsoft EdgePartial / Chromium-based
Partial
OperaChromium-based / varies
Partial
Internet ExplorerNot available
No support
presentationLimited
Bottom line: Detect "presentation" in navigator, confirm HTTPS, then branch on receiver. Never require casting for core UX.
Frequently Asked Questions
It is a read-only Navigator property that returns a Presentation object — the entry point to the Presentation API for controlling or receiving presentations on secondary displays.
The Presentation interface is Experimental and not Baseline. MDN marks navigator.presentation as limited availability. Always feature-detect and keep a non-presentation fallback UX.
Yes in supporting browsers: it is available only in secure contexts (HTTPS or localhost).
On a receiving browsing context, navigator.presentation.receiver returns a PresentationReceiver. On a normal controlling page it is typically null / falsy — MDN’s example shows “Receiving presentation” vs “(idle)”.
In a controlling context you can set navigator.presentation.defaultRequest to a PresentationRequest so the browser can use it for chrome-initiated casting. In a receiving context it is null.
No. The property is read-only. You use fields on the returned Presentation object (such as defaultRequest and receiver).