Signatur
Beschreibung
navigator.vendorSub ist eine schreibgeschützte Eigenschaft des Navigator-Objekts. Früher sollte sie die Versionsnummer des Browser-Herstellers enthalten und navigator.vendor ergänzen. Laut HTML-Standard muss sie heute in jedem Browser den leeren String "" zurückgeben.
Die Eigenschaft gibt es nur noch, damit alte Skripte nicht mit einem Fehler abbrechen, wenn sie darauf zugreifen. Informationen über Browser oder Version liefert sie nicht mehr. Für neuen Code taugt sie deshalb nicht.
Wenn du Browser-Fähigkeiten prüfen willst, nutze Feature-Detection, zum Beispiel 'serviceWorker' in navigator. Brauchst du wirklich Angaben zu Browser und Plattform, gibt es in Chromium-Browsern die User-Agent Client Hints (navigator.userAgentData).
Rückgabewert
"".Beispiele
Wert auslesen
// In jedem modernen Browser leer
const sub = navigator.vendorSub;
console.log(JSON.stringify(sub));
console.log(sub.length);
Altcode absichern: Diagnose-Objekt ohne vendorSub bauen
// Nur Werte übernehmen, die wirklich etwas aussagen
const getBrowserInfo = () => {
const info = {
vendor: navigator.vendor,
language: navigator.language,
vendorSub: navigator.vendorSub || null // leerer String wird zu null
};
return Object.fromEntries(
Object.entries(info).filter(([, value]) => value)
);
};
console.log(getBrowserInfo());
Feature-Detection statt Hersteller-Abfrage
// Falsch: if (navigator.vendorSub === '...') — liefert nie etwas
// Richtig: gewünschte Fähigkeit direkt prüfen
const supportsShare = typeof navigator.share === 'function';
const supportsClipboard = 'clipboard' in navigator;
console.log({ supportsShare, supportsClipboard });
// Wichtig · Fallstricke
- Kein Informationsgehalt: Der HTML-Standard legt fest, dass der Wert immer
""ist. Vergleiche wienavigator.vendorSub === "1.0"sind also immerfalse. - Kompatibilität: Chrome, Edge, Firefox und Safari stellen die Eigenschaft bereit, alle mit leerem String. Sehr alte Netscape-/Gecko-Versionen lieferten dort früher eine Versionsnummer.
- Nicht Teil von WorkerNavigator: In Web Workern ist
navigator.vendorSubin der Regelundefined. - Datenschutz: Da der Wert immer gleich ist, trägt er nicht zum Browser-Fingerprinting bei. Verlass dich für die Browser-Erkennung trotzdem nicht auf
navigator-Zeichenketten.