Start · Sprachen · JavaScript · Referenz · Navigator.javaEnabled()

Navigator.javaEnabled()

Methode

Gibt an, ob Java-Applets im Browser aktiviert sind – moderne Browser liefern laut HTML-Standard immer <code>false</code>.

seit JavaScript Baseline: alle Browser (liefert in modernen Browse Kategorie: webapi

Signatur

Navigator.prototype.javaEnabled()

Beschreibung

navigator.javaEnabled() stammt aus der Zeit der Java-Applets und des NPAPI-Plugin-Systems. Früher meldete die Methode, ob der Browser Java-Inhalte (z. B. <applet>-Elemente) ausführen kann.

Der HTML-Standard legt inzwischen fest, dass die Methode immer false zurückgibt. Alle aktuellen Browser (Chrome, Edge, Firefox, Safari) haben die Unterstützung für Java-Plugins vollständig entfernt. Die Methode bleibt nur aus Kompatibilitätsgründen erhalten, damit alter Code nicht mit einem TypeError abbricht.

In neuem Code gibt es keinen sinnvollen Anwendungsfall. Nützlich ist die Methode höchstens, um Altcode zu erkennen und zu vereinfachen, oder in Analyse- bzw. Fingerprinting-Skripten, bei denen sie aber keinerlei Information mehr liefert.

Rückgabewert

Typ
boolean
Beschreibung
In allen modernen Browsern immer false. Historisch true, wenn ein Java-Plugin installiert und aktiviert war.

Beispiele

Einfacher Aufruf

const javaAktiv = navigator.javaEnabled();
console.log(`Java aktiviert: ${javaAktiv}`);
Java aktiviert: false

Altcode mit Fallback modernisieren

// Früher: Applet laden, falls Java verfügbar ist
const zeigeInhalt = (container) => {
  if (navigator.javaEnabled()) {
    // Dieser Zweig wird in modernen Browsern nie erreicht
    container.textContent = 'Java-Applet wird geladen …';
  } else {
    // Moderne Alternative: reine Web-Technik (Canvas, WebAssembly …)
    container.textContent = 'Interaktive Ansicht ohne Java wird geladen.';
  }
};

zeigeInhalt(document.body);
console.log(document.body.textContent);
Interaktive Ansicht ohne Java wird geladen.

Defensive Prüfung in Umgebungen ohne navigator

// Funktioniert auch in Node.js oder Workern, wo javaEnabled fehlt
const istJavaVerfuegbar = () =>
  typeof navigator !== 'undefined' &&
  typeof navigator.javaEnabled === 'function' &&
  navigator.javaEnabled();

console.log(istJavaVerfuegbar());
false

// Wichtig · Fallstricke

  • Immer false: Laut HTML-Standard ist der Rückgabewert fest verdrahtet. Verzweigungen, die davon abhängen, sind toter Code und können entfernt werden.
  • Kein Ersatz für Feature-Erkennung: Mit der Methode lässt sich nicht prüfen, ob irgendeine Java-Laufzeit auf dem System installiert ist.
  • Nur im Hauptthread: In Web Workern (WorkerNavigator) gibt es javaEnabled() nicht, in Node.js ebenfalls nicht. Ein Aufruf ohne Prüfung führt dort zu einem TypeError.
  • Kompatibilität: Alle Browser stellen die Methode bereit. Seit dem Ende von NPAPI (Chrome 45, Firefox 52, Safari 12) gibt es keine Java-Unterstützung mehr.
  • Auch das zugehörige Element <applet> ist veraltet und wurde aus HTML entfernt.