Start · Sprachen · JavaScript · Referenz · Navigator.vendorSub

Navigator.vendorSub

Eigenschaft

Schreibgeschützte Eigenschaft, die in allen aktuellen Browsern immer den leeren String <code>""</code> liefert und nur noch aus Kompatibilitätsgründen existiert.

seit JavaScript Baseline: alle Browser (veraltet, immer leerer Str Kategorie: webapi

Signatur

Navigator.vendorSub

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

Typ
string
Beschreibung
Immer der leere String "".

Beispiele

Wert auslesen

// In jedem modernen Browser leer
const sub = navigator.vendorSub;
console.log(JSON.stringify(sub));
console.log(sub.length);
"" 0

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());
{ vendor: "Google Inc.", language: "de-DE" } // je nach Browser

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 });
{ supportsShare: true, supportsClipboard: true } // je nach Browser

// Wichtig · Fallstricke

  • Kein Informationsgehalt: Der HTML-Standard legt fest, dass der Wert immer "" ist. Vergleiche wie navigator.vendorSub === "1.0" sind also immer false.
  • 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.vendorSub in der Regel undefined.
  • 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.