W3cubDocs

/DOM

navigator

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.

Properties

Doesn't inherit any properties, but implements those defined in NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorStorage, NavigatorStorageUtils, NavigatorConcurrentHardware, NavigatorPlugins, and NavigatorUserMedia.

Standard

Navigator.activeVRDisplays Read only
Returns an array containing every VRDisplay object that is currently presenting (VRDisplay.ispresenting is true).
NavigatorID.appCodeName Read only
Returns the internal "code" name of the current browser. Do not rely on this property to return the correct value.
NavigatorID.appName Read only
Returns a DOMString with the official name of the browser. Do not rely on this property to return the correct value.
NavigatorID.appVersion Read only
Returns the version of the browser as a DOMString. Do not rely on this property to return the correct value.
Navigator.battery Read only
Returns a BatteryManager object you can use to get information about the battery charging status.
Navigator.connection Read only
Provides a NetworkInformation object containing information about the network connection of a device.
Navigator.cookieEnabled Read only
Returns false if setting a cookie will be ignored and true otherwise.
Navigator.geolocation Read only
Returns a Geolocation object allowing accessing the location of the device.
NavigatorConcurrentHardware.hardwareConcurrency Read only
Returns the number of logical processor cores available.
NavigatorPlugins.javaEnabled Read only
Returns a Boolean flag indicating whether the host browser is Java-enabled or not.
Navigator.keyboard Read only
Returns a Keyboard object which provides access to functions that retrieve keyboard layout maps and toggle capturing of key presses from the physical keyboard.
NavigatorLanguage.language Read only
Returns a DOMString representing the preferred language of the user, usually the language of the browser UI. The null value is returned when this is unknown.
NavigatorLanguage.languages Read only
Returns an array of DOMString representing the languages known to the user, by order of preference.
Navigator.locks Read only
Returns a LockManager object which provides methods for requesting a new Lock object and querying for an existing Lock object
Navigator.mediaCapabilities Read only
Returns a MediaCapabilities object that can expose information about the decoding and encoding capabilities for a given format and output capabilities.
Navigator.maxTouchPoints Read only
Returns the maximum number of simultaneous touch contact points are supported by the current device.
NavigatorPlugins.mimeTypes Read only
Returns an MimeTypeArray listing the MIME types supported by the browser.
NavigatorOnLine.onLine Read only
Returns a Boolean indicating whether the browser is working online.
Navigator.oscpu
Returns a string that represents the current operating system.
Navigator.permissions Read only
Returns a Permissions object that can be used to query and update permission status of APIs covered by the Permissions API.
NavigatorID.platform Read only
Returns a string representing the platform of the browser. Do not rely on this function to return a significant value.
NavigatorPlugins.plugins Read only
Returns a PluginArray listing the plugins installed in the browser.
NavigatorID.product Read only
Always returns 'Gecko', on any browser. This property is kept only for compatibility purpose.
Navigator.serviceWorker Read only
Returns a ServiceWorkerContainer object, which provides access to registration, removal, upgrade, and communication with the ServiceWorker objects for the associated document.
NavigatorStorage.storage Read only
Returns the singleton StorageManager object used for managing persistance permissions and estimating available storage on a site-by-site/app-by-app basis.
NavigatorID.userAgent Read only
Returns the user agent string for the current browser.
Navigator.webdriver Read only
Indicates whether the user agent is controlled by automation.

Non-standard

Navigator.buildID
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.
Navigator.credentials
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.
Navigator.deviceMemory Read only
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.
Navigator.doNotTrack
Reports the value of the user's do-not-track preference. When this value is "yes", your web site or application should not track the user.
Navigator.mediaDevices
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().
Navigator.mozNotification Deprecated since Gecko 22
Navigator.webkitNotification
Returns a notification object you can use to deliver notifications to the user from your web application.
Navigator.mozSocial
The Object, returned by the navigator.mozSocial property, is available within the social media provider's panel to provide functionality it may need.
Navigator.presentation
Returns a reference to the Presentation API.
Navigator.productSub
Returns the build number of the current browser (e.g., "20060909").
Navigator.securitypolicy
Returns an empty string. In Netscape 4.7x, returns "US & CA domestic policy" or "Export policy".
Navigator.standalone
Returns a boolean indicating whether the browser is running in standalone mode. Available on Apple's iOS Safari only.
Navigator.storageQuota Read only
Returns a StorageQuota interface which provides means to query and request storage usage and quota information.
Navigator.vendor
Returns the vendor name of the current browser (e.g., "Netscape6").
Navigator.vendorSub
Returns the vendor version number (e.g. "6.1").
Navigator.webkitPointer
Returns a PointerLock object for the Mouse Lock API.

Methods

Doesn't inherit any method, but implements those defined in NavigatorID, NavigatorContentUtils, NavigatorUserMedia, and NavigatorStorageUtils.

Standard

Navigator.getVRDisplays()
Returns a promise that resolves to an array of VRDisplay objects representing any available VR devices connected to the computer.
Navigator.getUserMedia()
After having prompted the user for permission, returns the audio or video stream associated to a camera or microphone on the local computer.
Navigator.registerContentHandler() Obsolete since Gecko 59
Allows web sites to register themselves as a possible handler for a given MIME type.
Navigator.registerProtocolHandler()
Allows web sites to register themselves as a possible handler for a given protocol.
Navigator.requestMediaKeySystemAccess()
Returns a Promise for a MediaKeySystemAccess object.
Navigator.sendBeacon()
Used to asynchronously transfer a small amount of data using HTTP from the User Agent to a web server.
Navigator.share()
Invokes the native sharing mechanism of the current platform.
NavigatorID.taintEnabled() Deprecated since Gecko 1.7.8 Obsolete since Gecko 9.0
Returns false. JavaScript taint/untaint functions removed in JavaScript 1.2.
Navigator.vibrate()
Causes vibration on devices with support for it. Does nothing if vibration support isn't available.

Non-standard

Firefox OS devices adds more non-standard methods. You can consult them on the Firefox OS Navigator extensions article.

Navigator.mozIsLocallyAvailable()
Lets code check to see if the document at a given URI is available without using the network.
Navigator.mozPay()
Allows in-app payment.

Specifications

Browser compatibilityUpdate compatibility data on GitHub

Desktop
Chrome Edge Firefox Internet Explorer Opera Safari
Basic support Yes Yes Yes Yes Yes Yes
activeVRDisplays No
No
Available on all platforms behind a flag, but currently only works on desktop in an experimental version of Chrome (other builds won't return any devices when Navigator.getVRDisplays() is invoked).
Yes 55
55
Currently only Windows support is enabled by default. Mac support is available in Firefox Nightly.
No No No
authentication 67
Disabled
67
Disabled
Disabled From version 67: this feature is behind the WebAuth preference. To change preferences in Chrome, visit chrome://flags.
No No No ? No
battery 38 ? 16 — 50
16 — 50
Removed in favor of navigator.getBattery().
The Battery API was supported on Android, Windows, and Linux with UPower installed. Support for macOS was available starting with Firefox 18.
11 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
10 — 16
Disabled
Disabled From version 10 until version 16 (exclusive): this feature is behind the dom.battery.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No No No
buildID ? ? 2 ? ? ?
clipboard 66 ? 63 ? ? ?
connection 61 ? ? No ? No
cookieEnabled 59 Yes 1
1
Prior to Firefox 8, navigator.cookieEnabled would report the wrong result if a site exception was in place for the page on which the check was performed. This has been fixed.
Yes Yes Yes
credentials 51 18 ? ? ? ?
deviceMemory 63 ? ? ? 50 ?
doNotTrack 23 No
No
Use window.doNotTrack instead.
9
9
Prior to Firefox 32, navigator.doNotTrack would report values of yes and no rather than 1 and 0.
9 — 11
Prefixed
9 — 11
Prefixed
Prefixed Implemented with the vendor prefix: ms
For IE11 and subsequent versions, use window.doNotTrack
12 5.1 — 7
5.1 — 7
Safari 7.1.3+ uses window.doNotTrack rather than navigator.doNotTrack.
geolocation 5 Yes 3.5 9 16
16
10.6 — 15
5
getBattery 39 ? 43 — 52
43 — 52
From Firefox 52 onwards, the Battery Status API is only available in chrome/privileged code.
No 25 No
getGamepads 35
35
21
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
Yes 29 No 22
22
15
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
No
getUserMedia 21
Prefixed
21
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Later versions of Chrome support the unprefixed MediaDevices.getUserMedia() which replaced this deprecated method.
Yes 17
Prefixed
17
Prefixed
Prefixed Implemented with the vendor prefix: moz
The constraint syntax described here is available as of Firefox 38. Earlier versions (32-37) used an outdated constraint syntax, but the syntax described here is available there through the adapter.js polyfill.
No 18
Prefixed
18
Prefixed
Prefixed Implemented with the vendor prefix: webkit
12
An outdated constraint syntax is still in use, but the syntax described here is available through the adapter.js polyfill.
No
getVRDisplays No
No
Available on all platforms behind a flag, but currently only works on desktop in an experimental version of Chrome (other builds won't return any devices when Navigator.getVRDisplays() is invoked).
Yes 55
55
Currently only Windows support is enabled by default. Mac support is available in Firefox Nightly.
No No No
keyboard 68 No No No 55 No
locks 69 ? ? ? 56 ?
maxTouchPoints 35 ? 59
59
29
Disabled
Disabled From version 29: this feature is behind the dom.w3c_pointer_events.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
11
11
10
Prefixed
Prefixed Implemented with the vendor prefix: ms
? No
mediaCapabilities 66 No 63 No 55 No
mediaDevices 51 Yes 36 Yes No No
mediaSession No ? ? ? No ?
mozIsLocallyAvailable No No ? — 35 No No No
oscpu No ? Yes ? ? ?
permissions 43 ? 46 ? ? ?
presentation Yes ? No ? ? ?
productSub Yes
Yes
Always returns 20030107.
? Yes Yes
Yes
Always returns undefined.
? Yes
Yes
Always returns 20030107.
registerContentHandler ? ? 2 — 62 ? ? ?
registerProtocolHandler 13
13
Protocol whitelist includes mailto, mms, nntp, rtsp, and webcal. Custom protocols must be prefixed with web+.
? 3 ? 11.6 ?
requestMediaKeySystemAccess 42
42
The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
The function does not exist in insecure contexts. This was not enforced until Chrome 58.
Yes Yes
Yes
Starting in Firefox 55, if neither audioCapabilities nor videoCapabilities is specified in supportedConfigurations, a warning is output to the web console.
In addition, starting in Firefox 55, if in supportedConfigurations, either audioCapabilities's or videoCapabilities's contentType value doesn't specify a "codecs" substring to define allowed codecs within the media wrapper, a warning is output to the web console. See note below table for example and correction.
In the future, if neither audioCapabilities nor videoCapabilities is specified in the supportedConfigurations, a NotSupported exception will be thrown.
? 29
29
The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
The function does not exist in insecure contexts. This was not enforced until Opera 45.
?
sendBeacon 39
39
Starting in Chrome 59, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
Yes 31 No 26
26
Starting in Opera 46, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
11.1
serviceWorker 40 17
17
16
Disabled
Disabled From version 16: this feature is behind the Enable service workers preference.
44
44
Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
No 27 11.1
share No ? No No No No
vendor 1 Yes Yes Yes Yes Yes
vendorSub Yes ? Yes Yes 15 Yes
vibrate 32 ? 16
16
Until Firefox 26 included, when the vibration pattern was too long or any of its elements too large, Firefox threw an exception instead of returning false (bug 884935).
From Firefox 32 onwards, when the vibration pattern is too long or any of its elements too large, it returns true but truncates the pattern (bug 1014581).
11
Prefixed
Prefixed Implemented with the vendor prefix: moz
No No No
webdriver 63 ? ? ? 50 ?
Mobile
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support Yes Yes Yes Yes Yes Yes Yes
activeVRDisplays Yes Yes
Yes
Currently supported only by Google Daydream.
No 55 No No ?
authentication 67
Disabled
67
Disabled
Disabled From version 67: this feature is behind the WebAuth preference.
67
Disabled
67
Disabled
Disabled From version 67: this feature is behind the WebAuth preference. To change preferences in Chrome, visit chrome://flags.
No No ? No No
battery ? 38 ? 16 — 50
16 — 50
Removed in favor of navigator.getBattery().
The Battery API was supported on Android, Windows, and Linux with UPower installed. Support for macOS was available starting with Firefox 18.
14 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
10 — 16
Disabled
Disabled From version 10 until version 16 (exclusive): this feature is behind the dom.battery.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No No ?
buildID ? ? ? Yes ? ? ?
clipboard 66 66 ? 63 ? ? ?
connection 50 38 ? 14
14
The Network API is enabled by default. Can be disabled using the dom.netinfo.enabled preference.
37 No ?
cookieEnabled 59 59 Yes 4
4
Prior to Firefox 8, navigator.cookieEnabled would report the wrong result if a site exception was in place for the page on which the check was performed. This has been fixed.
Yes Yes ?
credentials 51 51 ? ? ? ? ?
deviceMemory 63 63 ? ? 50 ? ?
doNotTrack Yes Yes No
No
Use window.doNotTrack instead.
9
9
Prior to Firefox 32, navigator.doNotTrack would report values of yes and no rather than 1 and 0.
? ? ?
geolocation Yes Yes Yes 4 10.6 Yes ?
getBattery 40 42 ? 43 — 52
43 — 52
From Firefox 52 onwards, the Battery Status API is only available in chrome/privileged code.
25 No ?
getGamepads 37
37
Yes
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
42 Yes No No No ?
getUserMedia 40
Prefixed
40
Prefixed
Prefixed Implemented with the vendor prefix: webkit
An outdated constraint syntax is still in use, but the syntax described here is available through the adapter.js polyfill.
No Yes 24
Prefixed
24
Prefixed
Prefixed Implemented with the vendor prefix: moz
The constraint syntax described here is available as of Firefox 38. Earlier versions (32-37) used an outdated constraint syntax, but the syntax described here is available there through the adapter.js polyfill.
12
12
An outdated constraint syntax is still in use, but the syntax described here is available through the adapter.js polyfill.
No No
getVRDisplays Yes Yes
Yes
Currently supported only by Google Daydream.
No 55 No No ?
keyboard No No No No No No No
locks 69 69 ? ? 56 ? ?
maxTouchPoints 37 35 ? 29
Disabled
29
Disabled
See bug 1426786.
Disabled From version 29: this feature is behind the dom.w3c_pointer_events.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
? No ?
mediaCapabilities 66 66 No 63 55 No ?
mediaDevices 51 51 Yes 36 No No ?
mediaSession No 57 ? ? No ? ?
mozIsLocallyAvailable No No No ? — 35 No No No
oscpu No No ? Yes ? ? ?
permissions 43 43 ? 46 ? ? ?
presentation Yes Yes ? No ? ? ?
productSub ? Yes
Yes
Always returns 20030107.
? Yes ? Yes
Yes
Always returns 20030107.
?
registerContentHandler ? ? ? ? ? ? ?
registerProtocolHandler ? ? ? 4 ? No ?
requestMediaKeySystemAccess 43
43
The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
The function does not exist in insecure contexts. This was not enforced until version 58.
42
42
The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
The function does not exist in insecure contexts. This was not enforced until Chrome 58.
Yes Yes
Yes
Starting in Firefox 55, if neither audioCapabilities nor videoCapabilities is specified in supportedConfigurations, a warning is output to the web console.
In addition, starting in Firefox 55, if in supportedConfigurations, either audioCapabilities's or videoCapabilities's contentType value doesn't specify a "codecs" substring to define allowed codecs within the media wrapper, a warning is output to the web console. See note below table for example and correction.
In the future, if neither audioCapabilities nor videoCapabilities is specified in the supportedConfigurations, a NotSupported exception will be thrown.
29
29
The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
The function does not exist in insecure contexts. This was not enforced until Opera 45.
? ?
sendBeacon 40
40
Starting in Chrome 59, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
42
42
Starting in Chrome 59, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
Yes 31 29
29
Starting in Opera 46, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
No ?
serviceWorker 40 40 ? 44 27 11.1 ?
share 61 61 ? No 48 No ?
vendor Yes Yes Yes Yes Yes Yes Yes
vendorSub Yes Yes ? Yes 15 Yes ?
vibrate 4.4.3
4.4.3
Beginning in version 55, this is not supported in cross-origin iframes.
Beginning in version 60, this method requires a user gesture. Otherwise it returns false.
32
32
Beginning in Chrome 55, this is not supported in cross-origin iframes.
Beginning in Chrome 60, this method requires a user gesture. Otherwise it returns false.
? 16
16
Until Firefox 26 included, when the vibration pattern was too long or any of its elements too large, Firefox threw an exception instead of returning false (bug 884935).
From Firefox 32 onwards, when the vibration pattern is too long or any of its elements too large, it returns true but truncates the pattern (bug 1014581).
14
Prefixed
Prefixed Implemented with the vendor prefix: moz
Yes
Yes
Beginning in Opera 47, this method requires a user gesture. Otherwise it returns false.
No ?
webdriver ? 63 ? ? 50 ? ?

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/navigator