2010-01-19 19 views
8

Wie überprüft man, ob der Benutzer Javascript in seinem Browser deaktiviert hat? Zum Beispiel: Die Stackoverflow-Seite zeigt ein rotes Warndiv am oberen Rand, wenn Sie das Javascript in Firefox deaktivieren? Wie erreiche ich das?Wie überprüft man, ob Javascript deaktiviert ist?

Eine Sache, die mir aufgefallen ist: Wenn Sie Cookies deaktivieren, Stackoverflow funktioniert nicht. Sie können sich nicht anmelden, wenn Sie auf die Login-Schaltfläche klicken. Genau das nehme ich auch mit meiner Website an, die Benutzer-Login/Session-Daten sind abhängig von Cookies, UI-Layout etc .. hängt von Javascript ab.

Hier möchte ich nicht über das Design-Prinzip (progressive Verbesserung etc ..) diskutieren, könnte mir jemand einen guten Weg, um zu überprüfen, ob Cookies, Javascript aktiviert sind oder nicht? Ich denke, es muss auf Serverseite geschehen, oder?

Danke

Antwort

18

einen <noscript> Tag auf der Seite hinzufügen, und wenn JavaScript deaktiviert ist, wird die Nachricht an den Benutzer anzuzeigen.

können Sie auch erkennen, ob JavaScript

basierend auf dem Erfolg der laufenden JavaScript-Code aktiviert ist
  • ein verstecktes Feld hinzufügen und dessen Standardwert false
  • Run einig JavaScript-Code, um den Wert zu true setzt
  • Wenn Sie zurück schreiben, überprüfen Sie den Wert.

Um nach Cookies zu suchen, setzen Sie einen Cookie und versuchen Sie es zu lesen. Wenn dies gelingt, sind Cookies aktiviert.

+0

genauer zu sein,

+0

Beachten Sie, dass das Rendern von 'noscript' nur auftritt, wenn der Browser JavaScript nicht unterstützt, wenn der Benutzer es deaktiviert hat. Es wird nicht gerendert, wenn ein JavaScript-Fehler zum Abbruch der JS-Ausführung führt. –

3
<!-- gatewayPage.php --> 
<noscript> 
    <div style="background-color:red;font-size:14pt;"> 
     This site will be very boring unless you enable Javascript! 
    </div> 
    <!-- if you're convinced that bots won't follow your redirect, add this: --> 
    Proceed to <a href="myRealHomePage.php">MySite</a> anyway 
</noscript> 
<script> 
    documment.location = "myRealHomePage.php"; 
</script> 
+0

Ich hoffe nur, dass die Suchspinne JavaScript-Weiterleitungen folgt. – epascarello

+0

das ist schlecht für SEO, da die Suchmaschinen-Crawler JavaScript-Weiterleitungen nicht folgen können. –

+0

Vielleicht war es einmal, aber Googlebot folgt mir definitiv. – egrunin

Verwandte Themen