| 

.NET C# Java Javascript Exception

1
Wie kann ich in JavaScript feststellen, ob die Unterstützung für JavaScript im Browser aktiviert ist oder nicht? Und wie reagiere ich darauif, wenn meine Website ohne die Unterstützung von JavaScript nicht sinnvll zu verwenden ist?
News:
03.05.2012
vb_learner 1 1
2 Antworten
1
Entgegen der weitläufigen Meinung ist das <noscript> Tag nicht zuverlässig.

Folgendes Szenario (nicht ausgedacht, erlebt): Website hat HTML mit JavaScript ausgeliefert, die eingesetzten Browser haben alle JavaScript unterstützt, trotzdem war die Seite nicht funktionsfähig. Das noscript Tag hat ebenfalls nicht funktioniert.
Woran lag es? Der Firewall Admin hat’s gut gemeint und wollte die User vor dem „bösen“ JavaScript schützen. Dabei hat er ein wenig übers Ziel geschossen und hat aus dem Quellcode sämtliches JavaScript entfernt. Dadurch wurde nur der reine HTML Code an den Browser übergeben. Es gibt auch lokale „security“ Software, die das ebenfalls macht. Auch die sogenannten „WebWasher“ fallen in diese Kategorie.

Meiner Meinung nach ist die einzige zuverlässige Möglichkeit auf JavaScript zu prüfen JavaScript auch zu benutzen. Hier fallen mir auf die schnelle zwei Möglichkeiten ein:

1. Du willst den Benutzer nur warnen:
Blende ganz oben auf Deiner Website ein DIV mit der gewünschten Meldung (z.B. Bitte JS aktivieren, neuen Browser downloaden etc.) ein und verstecke dieses DIV mit JavaScript beim Laden der Seite ein. Die Seite sollte aber trotzdem rudimentär funktionieren.

2. Du willst dass der Benutzer eine spezielle Seite bekommt ohne die eigentliche Seite:
Mache in der index.html ein Javascript redirect (document.location.href="mit_js.html") auf die eigentliche Seite und zusätzlich noch ein verzögertes (<meta http-equiv="refresh" content="3; URL=ohne_js.html">) Meta redirect. Wenn der Benutzer mit aktivierten JS die index.html aufruft wird er sofort auf die eigentliche Seite weitergeleitet, ansonsten leitet nach drei Sekunden die Meta Weiterleitung auf die Fehlerseite um.

Ob sich der Mehraufwand zu dem noscript Tag rechnet kann ich nicht beurteilen, würde sagen hängt vom Klientel ab. Bei Privatkunden dürfte ein noscript reichen.
04.05.2012
Jaksa 4,0k 2 8
0
Es in Javascript festzustellen ist erstmal meines Wissens nach garnicht möglich. Du verwechselst hier vielleicht Java und Javascript, das sind unterschiedliche Programmiersprachen. Javascript wird als Text zusammen mit dem HTML und CSS an den Browser geschickt, wenn dieser kein Javascript unterstützt bzw es deaktiviert hat, kann garkein Javascript Code ausgeführt werden, der irgendetwas tut.
Aber es gibt mehrere Möglichkeiten:
Das einfachste ist warscheinlich das noscript tag, das angezeigt wird, wenn javascript deaktiviert ist.

http://www.w3schools.com/tags/tag_noscript.asp

Hier kannst du dann anzeigen, das der Benutzer kein Javascript ausführen kann und daher die Seite nicht richtig funktioniert, ggf kannst du da noch einen Link auf eine Javascript freie Alternative anbieten.

Wenn du Serverseitig wissen möchtest, ob der Client Javascript aktivert hat, fällt mir spontan ein, sobald die Seite geladen ist, einen Request an den Server zu schicken. Wenn er kommt ist js auf jeden Fall aktivert, wenn nicht, warscheinlich nicht.
03.05.2012
DerElse 101 5

Stelle deine Javascript-Frage jetzt!