Start · Sprachen · JavaScript · Referenz · Navigator.platform

Navigator.platform

Eigenschaft

Schreibgeschützter String, der die Plattform nennt, auf der der Browser läuft, z. B. <code>"Win32"</code>, <code>"MacIntel"</code> oder <code>"Linux x86_64"</code>.

seit JavaScript Baseline: alle Browser (veraltet, nicht empfohlen) Kategorie: webapi

Signatur

Navigator.platform

Beschreibung

Die Eigenschaft navigator.platform gibt einen String zurück, der das Betriebssystem bzw. die Hardware-Plattform des Browsers beschreibt. Typische Werte sind "Win32" (auch auf 64-Bit-Windows), "MacIntel" (auch auf Apple-Silicon-Macs), "Linux x86_64", "Linux armv8l", "iPhone" oder "iPad". Ein leerer String ist ebenfalls möglich.

Früher diente die Eigenschaft vor allem dazu, plattformspezifische Hinweise anzuzeigen, etwa die passende Tastenkombination (⌘ auf macOS, Strg auf Windows/Linux) oder den richtigen Download-Link. Für genau diesen engen Zweck ist sie bis heute verbreitet, weil es keinen gleichwertigen, überall verfügbaren Ersatz gibt.

Die Spezifikation erlaubt Browsern ausdrücklich, hier einen festen oder bewusst ungenauen Wert zu liefern, um Fingerprinting zu erschweren. Deshalb gilt: Nicht für Logik verwenden, die von einer exakten Erkennung abhängt. Besser ist Feature-Erkennung (etwa 'ontouchstart' in window oder matchMedia('(pointer: coarse)')) oder, in Chromium-Browsern, navigator.userAgentData.platform (User-Agent Client Hints).

Rückgabewert

Typ
string
Beschreibung
Ein String zur Plattform, z. B. "Win32", "MacIntel", "Linux x86_64", "iPhone"; unter Umständen ein leerer String "".

Beispiele

Plattform-String auslesen

const platform = navigator.platform;
console.log(`Plattform: ${platform || '(unbekannt)'}`);
Plattform: MacIntel

Richtige Modifikatortaste für Tastenkürzel anzeigen

// Mac-Erkennung: bevorzugt Client Hints, sonst navigator.platform
const isMac = () => {
  const p = navigator.userAgentData?.platform ?? navigator.platform ?? '';
  return /mac|iphone|ipad|ipod/i.test(p);
};

const modKey = isMac() ? '⌘' : 'Strg';
document.querySelector('#save-hint').textContent = `${modKey} + S zum Speichern`;
(auf macOS) ⌘ + S zum Speichern

Tastenkürzel plattformgerecht abfangen

const isMac = /mac/i.test(navigator.platform);

document.addEventListener('keydown', (event) => {
  const mod = isMac ? event.metaKey : event.ctrlKey;
  if (mod && event.key.toLowerCase() === 's') {
    event.preventDefault();
    console.log('Dokument wird gespeichert …');
  }
});
Dokument wird gespeichert …

// Wichtig · Fallstricke

  • Veraltet/nicht empfohlen: Die Eigenschaft ist zwar in allen Browsern vorhanden, gilt aber als Altlast. Browser dürfen feste oder verfälschte Werte liefern (Datenschutz, Fingerprinting-Schutz).
  • Irreführende Werte: 64-Bit-Windows meldet meist "Win32", Apple-Silicon-Macs melden "MacIntel". iPadOS 13+ gibt sich im Desktop-Modus als "MacIntel" aus – zur Unterscheidung ggf. navigator.maxTouchPoints > 1 prüfen.
  • Firefox kann den Wert über general.platform.override bzw. mit aktiviertem privacy.resistFingerprinting verändern.
  • Alternative: navigator.userAgentData.platform (z. B. "macOS", "Windows") – nur in Chromium-basierten Browsern und nur in sicheren Kontexten (HTTPS) verfügbar; daher immer mit Fallback nutzen.
  • Für Funktionsunterscheidungen stets Feature-Erkennung statt Plattform-Erkennung verwenden.
  • In Web Workern steht die Eigenschaft ebenfalls über WorkerNavigator.platform zur Verfügung; in Node.js gibt es stattdessen process.platform (ab Node.js 21 auch navigator.platform).