Start · Sprachen · JavaScript · Referenz · Navigator.buildID

Navigator.buildID

Eigenschaft

Nur lesbare, nicht standardisierte Eigenschaft, die die Build-Kennung des Browsers als Zeitstempel-String im Format <code>YYYYMMDDHHMMSS</code> zurückgibt. Es gibt sie nur in Firefox.

seit JavaScript Nicht standardisiert: nur Firefox (seit Firefox 64 Kategorie: webapi

Signatur

Navigator.buildID

Beschreibung

navigator.buildID gibt einen String mit der Build-Kennung des Browsers zurück. Das ist ein Zeitstempel im Format YYYYMMDDHHMMSS, etwa "20181001000000". Ursprünglich stand er für den genauen Zeitpunkt, zu dem die jeweilige Firefox-Version kompiliert wurde.

Die Eigenschaft gehört zu keinem Standard und wird nur von Firefox unterstützt. In Chrome, Edge, Safari und anderen Browsern ist der Wert undefined. Seit Firefox 64 bekommen normale Webseiten aus Datenschutzgründen immer denselben festen Wert "20181001000000". Damit lassen sich Nutzer nicht mehr über die genaue Build-Version wiedererkennen (Schutz vor Fingerprinting). Nur privilegierter Code, zum Beispiel interner Browser-Code, bekommt noch die echte Kennung.

Für echte Webanwendungen ist die Eigenschaft deshalb praktisch nutzlos. Man sollte sie weder zur Browser-Erkennung noch zur Versionsprüfung verwenden. Besser ist es, gezielt zu prüfen, ob eine Funktion vorhanden ist (Feature Detection), etwa mit 'fetch' in window. Wenn man wirklich Browser-Informationen braucht, sind navigator.userAgentData (wo verfügbar) oder navigator.userAgent die bessere Wahl.

Rückgabewert

Typ
string | undefined
Beschreibung
Ein String im Format YYYYMMDDHHMMSS. Webseiten bekommen in Firefox 64 und neuer immer "20181001000000". In Browsern, die die Eigenschaft nicht kennen, ist der Wert undefined.

Beispiele

Build-Kennung auslesen und Verfügbarkeit prüfen

// Prüfen, ob die Eigenschaft existiert (nur Firefox)
if ('buildID' in navigator) {
  console.log(`Build-ID: ${navigator.buildID}`);
} else {
  console.log('navigator.buildID wird nicht unterstützt');
}
Firefox 64+: Build-ID: 20181001000000 Chrome/Safari: navigator.buildID wird nicht unterstützt

Build-ID in ein Date-Objekt umwandeln

const parseBuildID = (id) => {
  const match = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/.exec(id ?? '');
  if (!match) return null;
  const [, y, mo, d, h, mi, s] = match.map(Number);
  return new Date(Date.UTC(y, mo - 1, d, h, mi, s));
};

const buildDate = parseBuildID(navigator.buildID);
console.log(buildDate ? buildDate.toISOString() : 'Keine Build-ID verfügbar');
Firefox 64+: 2018-10-01T00:00:00.000Z Andere Browser: Keine Build-ID verfügbar

Diagnose-Daten mit Fallback für ein Fehler-Log sammeln

const collectDiagnostics = () => ({
  userAgent: navigator.userAgent,
  language: navigator.language,
  // Nur als Zusatzinfo – nie für Browser-Weichen verwenden
  buildID: navigator.buildID ?? 'n/a',
  timestamp: new Date().toISOString()
});

console.log(collectDiagnostics());
{ userAgent: 'Mozilla/5.0 ...', language: 'de-DE', buildID: '20181001000000', timestamp: '...' }

// Wichtig · Fallstricke

  • Nicht standardisiert: Die Eigenschaft gibt es nur in Firefox. Chromium-Browser und Safari geben undefined zurück. Im Produktivcode sollte man sich nicht darauf verlassen.
  • Fester Wert seit Firefox 64: Webseiten bekommen zum Schutz vor Fingerprinting immer "20181001000000". Der Wert sagt also nichts über die tatsächliche Version oder das Build-Datum aus.
  • Keine Browser-Erkennung: Nicht verwenden, um Browser oder Versionen zu unterscheiden. Stattdessen gezielt prüfen, ob eine Funktion vorhanden ist (Feature Detection).
  • Die Eigenschaft ist nur lesbar. Eine Zuweisung wird stillschweigend ignoriert, im Strict Mode kann sie je nach Umgebung einen TypeError auslösen.
  • Wenn man den Wert trotzdem auswertet, immer mit undefined rechnen und zum Beispiel mit ?? absichern.