Notification: Notification() constructor
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only insecure contexts (HTTPS), in some or allsupporting browsers.
Note: This feature is available inWeb Workers.
TheNotification() constructor creates a newNotification object instance, which represents a user notification.
Trying to create a notification inside theServiceWorkerGlobalScope using theNotification() constructor will throw aTypeError. UseServiceWorkerRegistration.showNotification() instead.
You must first get permission before being able to display notifications, usingNotification.requestPermission(). The permission may not be grantable, for example if the page is in private browsing mode.
This constructor throws aTypeError when called in nearly all mobile browsers and this is unlikely to change, because web pages on mobile devices almost never "run in the background", which is the main use case for notifications. Instead, you need to register a service worker and useServiceWorkerRegistration.showNotification(). SeeChrome issue for more information.
In this article
Syntax
new Notification(title)new Notification(title, options)Parameters
titleDefines a title for the notification, which is shown at the top of the notification window.
optionsOptionalAn options object containing any custom settings that you want to apply to the notification. The possible options are:
actionsOptionalMust be unspecified or an empty array.
actionsis only supported for persistent notifications fired from a service worker usingServiceWorkerRegistration.showNotification().badgeOptionalA string containing the URL of the image used to represent the notification when there isn't enough space to display the notification itself; for example, the Android Notification Bar. On Android devices, the badge should accommodate devices up to 4x resolution, about 96x96px, and the image will be automatically masked.
bodyOptionalA string representing the body text of the notification, which is displayed below the title. The default is the empty string.
dataOptionalArbitrary data that you want associated with the notification. This can be of anystructured-clonable data type. The default is
null.dirOptionalThe direction in which to display the notification. It defaults to
auto, which just adopts the browser's language setting behavior, but you can override that behavior by setting values ofltrandrtl(although most browsers seem to ignore these settings.)iconOptionalA string containing the URL of an icon to be displayed in the notification.
imageOptionalA string containing the URL of an image to be displayed in the notification.
langOptionalThe notification's language, as specified using a string representing aBCP 47 language tag. The default is the empty string.
renotifyOptionalA boolean value specifying whether the user should be notified after a new notification replaces an old one. The default is
false, which means they won't be notified. Iftrue, thentagalso must be set.requireInteractionOptionalIndicates that a notification should remain active until the user clicks or dismisses it, rather than closing automatically. The default value is
false.silentOptionalA boolean value specifying whether the notification should be silent, i.e., no sounds or vibrations should be issued regardless of the device settings. If set to
true, the notification is silent; if set tonull(the default value), the device's default settings are respected.tagOptionalA string representing an identifying tag for the notification. The default is the empty string.
timestampOptionalA timestamp, given asUnix time in milliseconds, representing the time associated with the notification. This could be in the past when a notification is used for a message that couldn't immediately be delivered because the device was offline, or in the future for a meeting that is about to start.
vibrateOptionalAvibration pattern for the device's vibration hardware to emit with the notification. If specified,
silentmust not betrue.
Return value
An instance of theNotification object.
Exceptions
TypeErrorThrown if:
- The constructor is called within the
ServiceWorkerGlobalScope. - The
actionsoption is specified and is not empty. - The
silentoption istrueand thevibrateoption is specified. - The
renotifyoption istruebut thetagoption is empty.
- The constructor is called within the
DataCloneErrorDOMExceptionThrown if serializing the
dataoption failed for some reason.
Examples
Here is a most basic example to only show a notification if permission is already granted. For more complete examples, see theNotification page.
if (Notification.permission === "granted") { const notification = new Notification("Hi there!");}Specifications
| Specification |
|---|
| Notifications API> # dom-notification-notification> |