703 Stimmen

Wie erkennt man, ob JavaScript deaktiviert ist?

Es gab heute Morgen einen Beitrag, in dem gefragt wurde, wie viele Leute JavaScript deaktivieren. Dann fragte ich mich, welche Techniken verwendet werden könnten, um festzustellen, ob der Benutzer es deaktiviert hat.

Weiß jemand von einigen kurzen/einfachen Möglichkeiten, um festzustellen, ob JavaScript deaktiviert ist? Meine Absicht ist es, eine Warnung zu geben, dass die Website ohne aktiviertes JS nicht ordnungsgemäß funktionieren kann.

Letztendlich würde ich sie gerne zu Inhalten umleiten, die auch ohne JS funktionieren, aber ich benötige diese Erkennung als Platzhalter, um anzufangen.

0 Stimmen

Was möchtest du mit diesen Informationen tun? Es könnte die Antwort beeinflussen, die du bekommst - z.B. sollte in der Regel die progressive Verbesserung bevorzugt werden, anstatt zu versuchen, JavaScript-Deaktivierung zu erkennen und spezifische Maßnahmen basierend darauf zu ergreifen.

0 Stimmen

Progressive enhancement ist das, wonach ich suche. Ich möchte in der Lage sein, sie zu alternativem Inhalt umzuleiten, der ordnungsgemäß funktioniert, wenn kein JS-fähiger oder fähiger Browser vorhanden ist.

1 Stimmen

@expiredninja Dieser Beitrag von Nicholas Zakas besagt etwa 2%, obwohl er über ein Jahr alt ist.

44voto

Andrew Hedges Punkte 21406

Wenn Ihr Anwendungsfall darin besteht, dass Sie ein Formular haben (z.B. ein Anmeldeformular) und Ihr serverseitiges Skript wissen muss, ob der Benutzer JavaScript aktiviert hat, können Sie Folgendes tun:

Dies ändert den Wert von js_enabled auf 1, bevor das Formular abgesendet wird. Wenn Ihr serverseitiges Skript eine 0 erhält, kein JS. Wenn es eine 1 erhält, JS!

40voto

Zack Punkte 1537

Ist nicht einmal notwendig, ganz zu schweigen davon, dass es nicht in XHTML unterstützt wird.

Arbeitsbeispiel:

    Meine Webseite

      #site {
          display: none;
      }

      $(document).ready(function() {
          $("#noJS").hide();
          $("#site").show();
      });

    Bitte aktivieren Sie JavaScript...
    Hier abhängiger JavaScript-Inhalt...

In diesem Beispiel, wenn JavaScript aktiviert ist, sehen Sie die Webseite. Wenn nicht, sehen Sie die Nachricht "Bitte aktivieren Sie JavaScript". Der beste Weg, um zu testen, ob JavaScript aktiviert ist, besteht einfach darin, zu versuchen und JavaScript zu verwenden! Wenn es funktioniert, ist es aktiviert, wenn nicht, dann nicht...

36voto

zadubz Punkte 1203

Verwenden Sie eine .no-js-Klasse am Körper und erstellen Sie Nicht-JavaScript-Styles basierend auf der .no-js-Elternklasse. Wenn JavaScript deaktiviert ist, erhalten Sie alle Nicht-JavaScript-Styles. Wenn JS-Unterstützung vorhanden ist, wird die .no-js-Klasse ersetzt, sodass Sie alle Styles wie gewohnt erhalten.

document.body.className = document.body.className.replace("no-js","js");

Trick, der in HTML5-Boilerplate http://html5boilerplate.com/ durch modernizr verwendet wird, aber Sie können eine Zeile JavaScript verwenden, um die Klassen zu ersetzen.

Noscript-Tags sind in Ordnung, aber warum zusätzliche Elemente in Ihrem HTML haben, wenn es mit CSS erledigt werden kann.

16voto

borrel Punkte 910

Nur ein bisschen schwierig aber (hairbo gab mir die Idee)

CSS:

.pagecontainer {
  display: none;
}

JS:

function load() {
  document.getElementById('noscriptmsg').style.display = "none";
  document.getElementById('load').style.display = "block";
  /* restlicher js-Code */
}

HTML:

    Seite wird geladen....

    Sie haben kein JavaScript aktiviert. Viel Glück damit.

würde in jedem Fall funktionieren, oder? auch wenn das noscript-Tag nicht unterstützt wird (es wird nur etwas CSS benötigt) kennt jemand eine nicht-CSS-Lösung?

13voto

rslite Punkte 77347

Sie können ein einfaches JS-Snippet verwenden, um den Wert eines versteckten Feldes festzulegen. Wenn zurück gesendet wird, wissen Sie, ob JS aktiviert war oder nicht.

Oder Sie können versuchen, ein Popup-Fenster zu öffnen, das Sie schnell schließen (das aber möglicherweise sichtbar ist).

Außerdem haben Sie das NOSCRIPT-Tag, das Sie verwenden können, um Text für Browser mit deaktiviertem JS anzuzeigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X