Start · Sprachen · JavaScript · Referenz · Notification.dir

Notification.dir

Eigenschaft

Schreibgeschützte Eigenschaft, die die Textrichtung einer Benachrichtigung liefert (<code>"auto"</code>, <code>"ltr"</code> oder <code>"rtl"</code>), so wie sie im Konstruktor gesetzt wurde.

seit JavaScript Baseline: Chrome 22+, Firefox 22+, Safari 7+, Edge Kategorie: webapi

Signatur

Notification.prototype.dir

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

Typ
"auto" | "ltr" | "rtl"
Beschreibung
Ein String mit der Textrichtung der Benachrichtigung. Standardwert ist "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();
ltr

Standardwert ohne dir-Option

if (Notification.permission === 'granted') {
  const n = new Notification('Build abgeschlossen');
  console.log(n.dir); // keine Option angegeben
}
auto

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');
}
ar-EG: rtl de-DE: ltr

// 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 einen TypeError). 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 dir teilweise oder ganz.
  • Ungültige Werte in der Option dir führen beim Konstruktor zu einem TypeError, da es sich um ein Enum handelt.
  • Die Notifications API ist nur in sicheren Kontexten (HTTPS, localhost) verfügbar und erfordert eine Berechtigung per Notification.requestPermission(). Auf Android-Chrome funktioniert new Notification() nicht – dort ServiceWorkerRegistration.showNotification() verwenden; die Eigenschaft ist dann an den über getNotifications() gelieferten Objekten lesbar.