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.

393voto

hairbo Punkte 2979

Ich möchte hier meinen Senf dazugeben. Es ist nicht zu 100% wasserdicht, aber ich denke, es ist gut genug.

Das Problem für mich bei dem bevorzugten Beispiel, eine Art "Diese Seite funktioniert nicht so gut ohne Javascript" -Nachricht zu veröffentlichen, ist, dass Sie dann sicherstellen müssen, dass Ihre Seite auch ohne Javascript funktioniert. Und sobald Sie diesen Weg eingeschlagen haben, erkennen Sie, dass die Seite auch mit deaktiviertem JS wasserdicht sein sollte, und das ist eine ganze Menge zusätzlicher Arbeit.

Also, was Sie wirklich wollen, ist eine "Weiterleitung" zu einer Seite, die sagt "schalte JS ein, Dummkopf". Aber natürlich können Sie keine zuverlässigen Meta-Weiterleitungen machen. Also, hier ist der Vorschlag:

        .pagecontainer {display:none;}

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

...wo alle Inhalte Ihrer Seite in einem div mit der Klasse "pagecontainer" umschlossen sind. Der CSS innerhalb des noscript-Tags wird dann alle Ihre Seiteninhalte ausblenden und stattdessen die "Kein JS" -Nachricht anzeigen, die Sie zeigen möchten. Das ist tatsächlich das, was Gmail zu tun scheint...und wenn es gut genug für Google ist, dann ist es auch gut genug für meine kleine Seite.

309voto

Marc Gear Punkte 2766

Ich gehe davon aus, dass Sie versuchen zu entscheiden, ob Sie JavaScript-verbesserten Inhalt bereitstellen möchten oder nicht. Die besten Implementierungen degradieren sauber, sodass die Website auch ohne JavaScript funktioniert. Ich gehe auch davon aus, dass Sie serverseitige Erkennung meinen, anstatt das

Element aus einem unbekannten Grund zu verwenden.

Es gibt keine gute Möglichkeit, serverseitige JavaScript-Erkennung durchzuführen. Als Alternative ist es möglich, ein Cookie mit JavaScript zu setzen und bei nachfolgenden Seitenaufrufen mit serverseitigem Skript auf dieses Cookie zu prüfen. Dies wäre jedoch ungeeignet, um zu entscheiden, welchen Inhalt bereitgestellt werden soll, da es keinen Unterschied zwischen Besuchern ohne das Cookie, neuen Besuchern oder Besuchern, die das JavaScript-Set-Cookie nicht akzeptiert haben, erkennen würde.

204voto

ConroyP Punkte 39832

noscript Blöcke werden ausgeführt, wenn JavaScript deaktiviert ist, und werden typischerweise verwendet, um alternativen Inhalt anzuzeigen, den Sie in JavaScript generiert haben, z.B.

    ... Aufbau des Ajax-Links, Setzen des "js-enabled" Cookie-Flags, usw.

    Nächste Seite

Benutzer ohne js erhalten den Nächste Seite Link - Sie können hier Parameter hinzufügen, damit Sie auf der nächsten Seite wissen, ob sie über einen JS-/nicht-JS-Link gekommen sind, oder versuchen, ein Cookie über JS zu setzen, dessen Fehlen darauf hinweist, dass JS deaktiviert ist. Beide Beispiele sind ziemlich trivial und manipulierbar, aber Sie verstehen die Idee.

Wenn Sie eine rein statistische Vorstellung davon haben wollen, wie viele Ihrer Benutzer JavaScript deaktiviert haben, könnten Sie etwas Ähnliches tun:

dann überprüfen Sie Ihre Zugriffsprotokolle, um zu sehen, wie oft dieses Bild aufgerufen wurde. Eine etwas grobe Lösung, aber sie gibt Ihnen eine gute Vorstellung prozentual für Ihre Benutzerbasis.

Der oben genannte Ansatz (Bildverfolgung) funktioniert nicht gut für Textbrowser oder solche, die js überhaupt nicht unterstützen, daher, wenn Ihre Benutzerbasis hauptsächlich in diese Richtung geht, ist dies möglicherweise nicht der beste Ansatz.

50voto

Das hat für mich funktioniert: Es leitet einen Besucher um, wenn JavaScript deaktiviert ist

47voto

cllpse Punkte 20838

Ich würde vorschlagen, den umgekehrten Weg zu gehen, indem Sie unaufdringliches JavaScript schreiben.

Stellen Sie sicher, dass die Funktionen Ihres Projekts auch für Benutzer ohne JavaScript funktionieren, und implementieren Sie dann Ihre JavaScript-Benutzeroberflächenverbesserungen.

https://de.wikipedia.org/wiki/Unobtrusive_JavaScript

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