Signatur
Beschreibung
Die Eigenschaft dir einer Notification-Instanz gibt an, in welcher Textrichtung Titel und Inhalt der Benachrichtigung dargestellt werden sollen. Der Wert stammt aus der Option dir, die beim Aufruf von new Notification(title, options) bzw. ServiceWorkerRegistration.showNotification() übergeben wurde. Wurde nichts angegeben, ist der Wert "auto".
Mögliche Werte:
"auto"– der Browser bzw. das Betriebssystem bestimmt die Richtung anhand des Inhalts oder der Systemsprache (Standard)."ltr"– von links nach rechts (z. B. Deutsch, Englisch)."rtl"– von rechts nach links (z. B. Arabisch, Hebräisch).
Die Eigenschaft ist schreibgeschützt: Um die Richtung zu ändern, muss eine neue Benachrichtigung erzeugt werden (ggf. mit gleichem tag, damit sie die alte ersetzt). Sinnvoll ist dir vor allem in mehrsprachigen Anwendungen, in denen Nachrichten mit gemischten oder rechtsläufigen Texten angezeigt werden – etwa zusammen mit der Option lang.
Rückgabewert
"auto".Beispiele
Benachrichtigung mit Textrichtung erzeugen und auslesen
const zeigeHinweis = async () => {
const erlaubnis = await Notification.requestPermission();
if (erlaubnis !== 'granted') return;
const n = new Notification('Neue Nachricht', {
body: 'Sie haben eine neue Nachricht erhalten.',
dir: 'ltr',
lang: 'de-DE'
});
console.log(n.dir);
};
zeigeHinweis();
Standardwert ohne dir-Option
if (Notification.permission === 'granted') {
const n = new Notification('Build abgeschlossen');
console.log(n.dir); // keine Option angegeben
}
Richtung abhängig von der Sprache wählen
const rtlSprachen = ['ar', 'he', 'fa', 'ur'];
const benachrichtige = (titel, text, sprache) => {
const basis = sprache.split('-')[0];
const dir = rtlSprachen.includes(basis) ? 'rtl' : 'ltr';
const n = new Notification(titel, { body: text, lang: sprache, dir });
console.log(`${sprache}: ${n.dir}`);
return n;
};
if (Notification.permission === 'granted') {
benachrichtige('مرحبا', 'لديك رسالة جديدة', 'ar-EG');
benachrichtige('Hallo', 'Sie haben eine neue Nachricht', 'de-DE');
}
// Wichtig · Fallstricke
- Nur lesend: Eine Zuweisung wie
n.dir = 'rtl'wird ignoriert (im Strict Mode kein Fehler, da es ein Getter ohne Setter ist – die Zuweisung wirft im Strict Mode einenTypeError). Die Richtung lässt sich nur beim Erzeugen festlegen. - Nur ein Hinweis: Die tatsächliche Darstellung übernimmt das Betriebssystem. Viele Systeme (z. B. macOS, manche Android-Versionen) ignorieren
dirteilweise oder ganz. - Ungültige Werte in der Option
dirführen beim Konstruktor zu einemTypeError, da es sich um ein Enum handelt. - Die Notifications API ist nur in sicheren Kontexten (HTTPS,
localhost) verfügbar und erfordert eine Berechtigung perNotification.requestPermission(). Auf Android-Chrome funktioniertnew Notification()nicht – dortServiceWorkerRegistration.showNotification()verwenden; die Eigenschaft ist dann an den übergetNotifications()gelieferten Objekten lesbar.