Navigator

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

* Some parts of this feature may have varying levels of support.

The Navigator interface represents the state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities.

A Navigator object can be retrieved using the read-only window.navigator property.

Instance properties

Doesn't inherit any properties.

Standard properties

Returns a Bluetooth object for the current document, providing access to Web Bluetooth API functionality.

Returns a Clipboard object that provides read and write access to the system clipboard.

Returns a NetworkInformation object containing information about the network connection of a device.

Returns a ContactsManager interface which allows users to select entries from their contact list and share limited details of the selected entries with a website or application.

Returns false if setting a cookie will be ignored and true otherwise.

Returns the CredentialsContainer interface which exposes methods to request credentials and notify the user agent when interesting events occur such as successful sign in or sign out.

Returns the amount of device memory in gigabytes. This value is an approximation given by rounding to the nearest power of 2 and dividing that number by 1024.

Returns the browser's DevicePosture object, which allows developers to query the device's current posture (that is, whether the viewport is in a flat or folded state) and run code in response to posture changes.

Returns a Geolocation object allowing accessing the location of the device.

Returns the GPU object for the current browsing context. The entry point for the WebGPU API.

Returns the number of logical processor cores available.

Returns an HID object providing methods for connecting to HID devices, listing attached HID devices, and event handlers for connected HID devices.

Returns an Ink object for the current document, providing access to Ink API functionality.

Returns a Keyboard object which provides access to functions that retrieve keyboard layout maps and toggle capturing of key presses from the physical keyboard.

Returns a string representing the preferred language of the user, usually the language of the browser UI. The null value is returned when this is unknown.

Returns an array of strings representing the languages known to the user, by order of preference.

Returns a LockManager object that provides methods for requesting a new Lock object and querying for an existing Lock object.

Provides access to the browser's NavigatorLogin object, which a federated identity provider (IdP) can use to set a user's login status when they sign into or out of the IdP. See Federated Credential Management (FedCM) API for more details.

Returns the maximum number of simultaneous touch contact points are supported by the current device.

Returns a MediaCapabilities object that can expose information about the decoding and encoding capabilities for a given format and output capabilities.

Returns a reference to a MediaDevices object which can then be used to get information about available media devices (MediaDevices.enumerateDevices()), find out what constrainable properties are supported for media on the user's computer and user agent (MediaDevices.getSupportedConstraints()), and to request access to media using MediaDevices.getUserMedia().

Returns MediaSession object which can be used to provide metadata that can be used by the browser to present information about the currently-playing media to the user, such as in a global media controls UI.

Returns a boolean value indicating whether the browser is working online.

Returns true if the browser can display PDF files inline when navigating to them, and false otherwise.

Returns a Permissions object that can be used to query and update permission status of APIs covered by the Permissions API.

Returns a reference to the Presentation API.

Returns a Scheduling object for the current document.

Returns a Serial object, which represents the entry point into the Web Serial API to enable the control of serial ports.

Returns a ServiceWorkerContainer object, which provides access to registration, removal, upgrade, and communication with the ServiceWorker objects for the associated document.

Returns the singleton StorageManager object used for managing persistence permissions and estimating available storage on a site-by-site/app-by-app basis.

Returns a USB object for the current document, providing access to WebUSB API functionality.

Returns a UserActivation object containing information about the current window's user activation state.

Returns the user agent string for the current browser.

Returns a NavigatorUAData object, which gives access to information about the browser and operating system of the user.

Returns a reference to the VirtualKeyboard API, to take control of the on-screen virtual keyboard.

Returns a WakeLock interface you can use to request screen wake locks and prevent screen from dimming, turning off, or showing a screen saver.

Indicates whether the user agent is controlled by automation.

Returns the WindowControlsOverlay interface which exposes information about the geometry of the title bar in desktop Progressive Web Apps, and an event to know whenever it changes.

Returns XRSystem object, which represents the entry point into the WebXR API.

Non-standard properties

Returns the build identifier of the browser. In modern browsers this property now returns a fixed timestamp as a privacy measure, e.g. 20181001000000 in Firefox 64 onwards.

Returns a boolean indicating a user's consent to their information being shared or sold.

Returns a boolean indicating whether the browser is running in standalone mode. Available on Apple's iOS Safari only.

Deprecated properties

Returns an array containing every VRDisplay object that is currently presenting (VRDisplay.isPresenting is true).

Always returns 'Mozilla', in any browser.

Always returns 'Netscape', in any browser.

Returns the version of the browser as a string. Do not rely on this property to return the correct value.

Reports the value of the user's do-not-track preference. When this value is "1", your website or application should not track the user.

Returns an MimeTypeArray listing the MIME types supported by the browser.

Returns a string that represents the current operating system.

Returns a string representing the platform of the browser. Do not rely on this function to return a significant value.

Returns a PluginArray listing the plugins installed in the browser.

Always returns 'Gecko', in any browser.

Returns either the string '20030107', or '"20100101'.

Returns either the empty string, 'Apple Computer Inc.', or 'Google Inc.'.

Always returns the empty string.

Instance methods

Doesn't inherit any method.

Returns true if a call to Navigator.share() would succeed.

Clears a badge on the current app's icon and returns a Promise that resolves with undefined.

Substitutes specified strings inside the mapped URL corresponding to a given opaque URN or FencedFrameConfig's internal url property. This method has been made available as a temporary measure (hence "deprecated") to enable that substitution for fenced frame URLs, helping ad tech providers to migrate existing implementations across to privacy sandbox APIs.

Returns a value indicating whether the specified media element, audio context, or media feature "type" is allowed to autoplay.

Returns a promise that resolves with a BatteryManager object that returns information about the battery charging status.

returns an array of Gamepad objects, one for each gamepad connected to the device.

Returns a promise that resolves with an array of objects representing any related native or Progressive Web Applications that the user has installed.

Allows websites to register themselves as a possible handler for a given protocol.

Returns a Promise for a MediaKeySystemAccess object.

Returns a Promise representing a request for access to MIDI devices on the user's system.

Used to asynchronously transfer a small amount of data using HTTP from the User Agent to a web server.

Sets a badge on the icon associated with this app and returns a Promise that resolves with undefined.

Invokes the native sharing mechanism of the current platform.

Causes vibration on devices with support for it. Does nothing if vibration support isn't available.

Unregister a website that is a handler for a given protocol.

Deprecated methods

After having prompted the user for permission, returns the audio or video stream associated to a camera or microphone on the local computer.

Returns a promise that resolves to an array of VRDisplay objects representing any available VR devices connected to the computer.

Always returns false.

Returns false. JavaScript taint/untaint functions removed in JavaScript 1.2.

Specifications

Specification
HTML
# the-navigator-object

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Navigator
activeVRDisplays
DeprecatedNon-standard
Secure context required
DeprecatedNon-standard
adAuctionComponents
Experimental
appCodeName
Deprecated
appName
Deprecated
appVersion
Deprecated
audioSession
Experimental
authentication
Experimental
bluetooth
Experimental
buildID
Non-standard
canLoadAdAuctionFencedFrame
Experimental
canShare
data.files parameter
data.text parameter
clearAppBadge
clearOriginJoinedAdInterestGroups
Experimental
clipboard
connection
contacts
Experimental
cookieEnabled
createAuctionNonce
Experimental
credentials
deprecatedReplaceInURN
Experimental
deprecatedRunAdAuctionEnforcesKAnonymity
Experimental
deviceMemory
devicePosture
Experimental
doNotTrack
DeprecatedNon-standard
geolocation
Secure context required
getAutoplayPolicy
Experimental
getBattery
Secure context required
Experimental
getGamepads
Secure context required
Experimental
getInstalledRelatedApps
Experimental
getInterestGroupAdAuctionData
Experimental
getUserMedia
Deprecated
getVRDisplays
DeprecatedNon-standard
globalPrivacyControl
Experimental
gpu
Experimental
hardwareConcurrency
hid
Experimental
ink
Experimental
javaEnabled
Deprecated
joinAdInterestGroup
Experimental
keyboard
Experimental
language
languages
leaveAdInterestGroup
Experimental
locks
login
Experimental
managed
Experimental
maxTouchPoints
mediaCapabilities
mediaDevices
Secure context required
mediaSession
mimeTypes
Deprecated
Returns MIME types from plugins rather than hard-coded PDF values
DeprecatedNon-standard
ml
Experimental
onLine
oscpu
Deprecated
pdfViewerEnabled
permissions
platform
Deprecated
plugins
Deprecated
Returns plugins rather than hard-coded PDF plugin values
DeprecatedNon-standard
presentation
product
Deprecated
productSub
Deprecated
protectedAudience
Experimental
registerProtocolHandler
scheme parameter supports bitcoin
scheme parameter supports cabal
ExperimentalNon-standard
scheme parameter supports dat
ExperimentalNon-standard
scheme parameter supports did
ExperimentalNon-standard
scheme parameter supports dweb
ExperimentalNon-standard
scheme parameter supports ethereum
ExperimentalNon-standard
scheme parameter supports ftp
Experimental
scheme parameter supports ftps
Experimental
scheme parameter supports geo
scheme parameter supports hyper
ExperimentalNon-standard
scheme parameter supports im
scheme parameter supports ipfs
ExperimentalNon-standard
scheme parameter supports ipns
ExperimentalNon-standard
scheme parameter supports irc
scheme parameter supports ircs
scheme parameter supports magnet
scheme parameter supports mailto
scheme parameter supports matrix
scheme parameter supports mms
scheme parameter supports news
scheme parameter supports nntp
scheme parameter supports openpgp4fpr
scheme parameter supports sftp
Experimental
scheme parameter supports sip
scheme parameter supports sms
scheme parameter supports smsto
scheme parameter supports ssb
ExperimentalNon-standard
scheme parameter supports ssh
scheme parameter supports tel
scheme parameter supports urn
scheme parameter supports webcal
scheme parameter supports wtai
scheme parameter supports xmpp
Secure context required
requestMIDIAccess
Secure context required
requestMediaKeySystemAccess
runAdAuction
Experimental
scheduling
Experimental
sendBeacon
serial
Experimental
serviceWorker
setAppBadge
share
data.files parameter
data.text parameter
storage
storageBuckets
Experimental
taintEnabled
Deprecated
unregisterProtocolHandler
updateAdInterestGroups
Experimental
usb
userActivation
userAgent
userAgentData
Experimental
Secure context required
Experimental
vendor
Deprecated
vendorSub
Deprecated
vibrate
virtualKeyboard
Experimental
wakeLock
webdriver
windowControlsOverlay
xr
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
Deprecated. Not for use in new websites.
See implementation notes.
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.
Has more compatibility info.