Start · Sprachen · JavaScript · Referenz · WorkerNavigator.appCodeName

WorkerNavigator.appCodeName

Eigenschaft

Nur lesbare Eigenschaft, die in Web Workern aus Kompatibilitätsgründen immer die Zeichenkette <code>"Mozilla"</code> zurückgibt.

seit JavaScript Baseline: alle Browser (veraltet) Kategorie: webapi

Signatur

WorkerNavigator.appCodeName

Beschreibung

WorkerNavigator.appCodeName ist eine nur lesbare Eigenschaft des navigator-Objekts, das innerhalb eines Web Workers (Dedicated, Shared oder Service Worker) über self.navigator erreichbar ist. Sie entspricht Navigator.appCodeName im Hauptthread.

Laut HTML-Spezifikation muss der Wert in jedem Browser "Mozilla" sein, auch in Chrome, Safari und Edge. Das ist ein Überbleibsel aus der Zeit der Browserkriege: Damals haben viele Browser „Mozilla“ angegeben, damit Webseiten ihnen dieselben Funktionen zutrauen wie dem Netscape Navigator.

Die Eigenschaft gibt deshalb keine Auskunft über den tatsächlichen Browser. Sie existiert nur noch, damit alter Code nicht bricht. In neuem Code sollte man sie nicht verwenden. Zur Browser-Erkennung ist Feature-Erkennung (z. B. 'fetch' in self) fast immer die bessere Wahl. Wer wirklich Informationen über den Browser braucht, greift auf navigator.userAgentData (User-Agent Client Hints) oder notfalls auf navigator.userAgent zurück.

Rückgabewert

Typ
string
Beschreibung
Immer die Zeichenkette "Mozilla".

Beispiele

Wert im Dedicated Worker auslesen

// worker.js
console.log(self.navigator.appCodeName);

// main.js
const worker = new Worker('worker.js');
Mozilla

Navigator-Infos aus dem Worker an den Hauptthread senden

// info-worker.js
const { appCodeName, appName, platform, userAgent } = self.navigator;
self.postMessage({ appCodeName, appName, platform, userAgent });

// main.js
const worker = new Worker('info-worker.js');
worker.addEventListener('message', ({ data }) => {
  console.log(`appCodeName: ${data.appCodeName}`);
  worker.terminate();
});
appCodeName: Mozilla

Besser: Feature-Erkennung statt appCodeName

// worker.js – NICHT sinnvoll, da immer true:
const istMozilla = self.navigator.appCodeName === 'Mozilla';
console.log(istMozilla);

// Sinnvoll: nach der benötigten Fähigkeit fragen
const kannOffscreen = typeof OffscreenCanvas !== 'undefined';
const kannIndexedDB = 'indexedDB' in self;
console.log({ kannOffscreen, kannIndexedDB });
true { kannOffscreen: true, kannIndexedDB: true }

// Wichtig · Fallstricke

  • Veraltet: Die Eigenschaft ist nur noch aus Kompatibilitätsgründen spezifiziert. Sie liefert immer "Mozilla" und eignet sich daher nicht zur Browser-Erkennung.
  • Nur lesbar: Eine Zuweisung wie navigator.appCodeName = 'X' wird im Normalmodus stillschweigend ignoriert und hat keine Wirkung.
  • Nur im Worker-Kontext als WorkerNavigator verfügbar. Im Hauptthread heißt das Gegenstück Navigator.appCodeName, der Wert ist derselbe.
  • Kompatibilität: In allen modernen Browsern vorhanden. Ältere Versionen von Firefox und Chrome hatten die Eigenschaft in Workern zeitweise noch nicht.
  • Für Browser-Informationen besser navigator.userAgentData verwenden (bisher nur in Chromium-Browsern) oder, falls nötig, navigator.userAgent.