Signatur
Beschreibung
Die Eigenschaft silent einer Notification-Instanz gibt den Wert zurück, der beim Erzeugen der Benachrichtigung über die Option silent gesetzt wurde. Ist er true, soll das System die Benachrichtigung ohne Ton und ohne Vibration anzeigen, auch wenn das Gerät sonst Töne abspielen würde.
Die Eigenschaft ist schreibgeschützt. Den Wert legt man ausschließlich über das Options-Objekt fest, entweder bei new Notification(title, { silent: true }) oder bei ServiceWorkerRegistration.prototype.showNotification(). Wurde die Option nicht angegeben, liefert die Eigenschaft null. Dann entscheiden Browser und Betriebssystem nach ihren Standardeinstellungen.
Typische Einsatzfälle sind wenig dringende Hinweise, die nicht stören sollen: etwa Hintergrund-Synchronisation, Fortschrittsmeldungen oder Updates, die ein bestehendes Tag ersetzen. Zusammen mit tag und renotify lässt sich genau steuern, wann Nutzer aktiv aufmerksam gemacht werden.
Rückgabewert
true: Die Benachrichtigung soll stumm sein. false: Ton und Vibration sind ausdrücklich erlaubt. null: Die Option wurde nicht gesetzt, das System verhält sich nach seinen Standardeinstellungen.Beispiele
Stumme Benachrichtigung erstellen und Eigenschaft prüfen
const permission = await Notification.requestPermission();
if (permission === 'granted') {
const n = new Notification('Synchronisierung abgeschlossen', {
body: '12 neue Einträge wurden geladen.',
silent: true
});
console.log(n.silent);
}
Standardwert ohne gesetzte Option
if (Notification.permission === 'granted') {
const n = new Notification('Neue Nachricht');
// Option nicht angegeben -> null (je nach Browser-Version auch false)
console.log(n.silent);
}
Im Service Worker: nur dringende Meldungen mit Ton
// sw.js
self.addEventListener('push', (event) => {
const data = event.data?.json() ?? {};
const isUrgent = data.priority === 'high';
event.waitUntil(
self.registration.showNotification(data.title ?? 'Update', {
body: data.body,
tag: 'status-update',
silent: !isUrgent
})
);
});
// Später auslesen:
const list = await self.registration.getNotifications({ tag: 'status-update' });
list.forEach((n) => console.log(n.title, 'stumm:', n.silent));
// Wichtig · Fallstricke
- Schreibgeschützt: Eine Zuweisung wie
n.silent = falsehat keine Wirkung, im Strict Mode wirft sie einenTypeError. Wer den Wert ändern will, muss eine neue Benachrichtigung erzeugen. - Widerspruch zu
vibrate: Werdensilent: trueund ein nicht leeresvibrate-Muster zusammen angegeben, wirft der Konstruktor bzw.showNotification()einenTypeError. - Nur ein Hinweis an das System: Betriebssysteme wie macOS, Windows oder Android können die Option unterschiedlich umsetzen oder übergehen, zum Beispiel wegen „Nicht stören“-Modi oder eigener Einstellungen pro App.
- Kompatibilität: Ältere Browser-Versionen geben statt
nullden Wertfalsezurück, wenn die Option fehlt. Vor der Nutzung sollte man die Unterstützung prüfen, etwa mit'silent' in Notification.prototype. - Benachrichtigungen setzen eine Erlaubnis (
Notification.requestPermission()) und einen sicheren Kontext (HTTPS) voraus. Auf Android-Chrome funktioniertnew Notification()nicht, dort istshowNotification()über einen Service Worker nötig.