Signatur
Beschreibung
Die Eigenschaft window.status war ursprünglich dazu da, den Text in der Statusleiste am unteren Rand des Browserfensters festzulegen. Sie wurde vor allem Ende der 1990er-Jahre genutzt, z. B. für Lauftexte oder um beim Überfahren eines Links statt der echten URL einen eigenen Text anzuzeigen.
Weil sich das leicht für Phishing missbrauchen ließ (die echte Link-Adresse wurde verborgen), haben alle modernen Browser die Funktion standardmäßig abgeschaltet. Firefox, Chrome, Safari und Edge zeigen den gesetzten Text nicht mehr an. Die Eigenschaft steht aber aus Kompatibilitätsgründen weiter im HTML-Standard: Man kann einen String zuweisen und wieder auslesen, sichtbar wird er jedoch nicht.
In neuem Code sollte man window.status nicht verwenden. Statusmeldungen gehören in die Seite selbst, z. B. in ein Element mit role="status" oder aria-live="polite". Dann werden sie auch von Screenreadern angesagt.
Beispiele
Wert setzen und wieder auslesen
// Die Zuweisung klappt, der Text erscheint aber in keiner Statusleiste
window.status = 'Daten werden geladen …';
console.log(window.status);
// Nicht-String-Werte werden umgewandelt
window.status = 42;
console.log(typeof window.status, window.status);
Altes Muster: Link-Hover-Text (funktioniert nicht mehr)
// Früher üblicher Code – heute ohne sichtbaren Effekt
const link = document.querySelector('a');
link.addEventListener('mouseover', () => {
window.status = 'Zur Produktübersicht';
});
link.addEventListener('mouseout', () => {
window.status = '';
});
// Der Browser zeigt weiterhin die echte href-URL an.
Moderner Ersatz: barrierefreie Statusmeldung im Dokument
// HTML: <p id="status" role="status" aria-live="polite"></p>
const statusEl = document.getElementById('status');
const setStatus = (text) => {
statusEl.textContent = text; // textContent statt innerHTML – kein XSS-Risiko
};
const speichern = async () => {
setStatus('Speichere …');
await new Promise((r) => setTimeout(r, 500));
setStatus('Gespeichert.');
};
speichern();
// Wichtig · Fallstricke
- Veraltet: Alle aktuellen Browser (Chrome, Firefox, Safari, Edge) ignorieren den Wert für die Anzeige. In Firefox gab es früher die Einstellung
dom.disable_window_status_change, die inzwischen standardmäßig aktiv ist. - Sicherheit: Die Funktion wurde abgeschaltet, weil man damit Link-Ziele verschleiern und Nutzer täuschen konnte (Phishing). Man kann sich also nicht darauf verlassen, dass sie irgendwo noch funktioniert.
- Globaler Name: Weil
statuseine Eigenschaft vonwindowist, wird eine globale Variablevar status = 1im Skript-Kontext in den String"1"umgewandelt. Das ist ein häufiger Anfängerfehler.let/constoder Module umgehen das Problem. window.defaultStatusist ebenfalls veraltet und wurde aus den meisten Browsern entfernt.- Als Ersatz dienen ARIA-Live-Regionen (
role="status") oder eigene Toast-/Hinweis-Elemente.