Signatur
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
false. Historisch true, wenn ein Java-Plugin installiert und aktiviert war.Beispiele
Einfacher Aufruf
const javaAktiv = navigator.javaEnabled();
console.log(`Java aktiviert: ${javaAktiv}`);
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);
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());
// 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 esjavaEnabled()nicht, in Node.js ebenfalls nicht. Ein Aufruf ohne Prüfung führt dort zu einemTypeError. - 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.