Prüfen, ob Javascript aktiviert ist

Hallo Experten,

Ich suche nach einer Möglichkeit, abzuprüfen, ob Javascript im Browser aktiviert ist. Wenn dies nicht der Fall ist, soll bei Aufruf der Seite eine entsprechende Meldung (z.B. durch ein Alert) ausgegeben werden.

Wie das mit Javascript zu realisieren ist, weiß ich, daß ganze nützt nur nichts, da ja der Besucher (durch das deaktivierte Javascript) niemals die Meldung erhalten wird.

Also was kann man machen?

Kerstin

Hallo Kerstin,

die Prüfung auf JS-Aktivität geht IMHO nur mit JavaScript (siehe FAQ:1248) und die von dir gewünschte Meldung geht in der Form auch nicht ohne JS, wie du ja bereits sagtest. Eine Möglichkeit wäre, ein Layer (DIV-Container) mit Meldung und Link zu einer Alternativseite im Vordergrund anzuzeigen, welches bei aktiviertem JS standardmäßig vom Script versteckt wird (siehe FAQ:1711).

So könnte jeder mit aktiviertem JS die Seite komplett sehen (der Layer ist ja versteckt) und bei dem, der JS deaktiviert hat, dringt der (bestenfalls undurchsichtige und andersfarbige) Layer mit der Meldung und dem Link in den Vordergrund. Mit dem Layer könntest du z.B. die Navigation überdecken. Der Link könnte dann den Besucher auf eine Alternativseite umlenken.

Alternativ zum Überdecken der Navigation basierst du deine Navigation komplett auf JS, so dass diese bei inaktivierter JS-Funktion gar nicht erst angezeigt wird. Damit könntest du den Layer frei positionieren und die Weiternavigation wäre außer über den Link im Layer nicht möglich. Das nur mal so als Gedankengespinst auf die Schnelle. Dies wäre allerdings far awäi from se gudd stail of web programming.

Lieben Gruß
Huttatta

Hallo Kerstin

Also was kann man machen?

Hutatta hat im Prinzip recht, ich will
nur seinen Beitrag konkretisieren und
ein Beispiel liefern (da ich mich gerade
sowieso mit JS befasse).

Anstelle von „css::visibility“ kann/soll man
auch „css::display“ für einen DIV-Container
setzen, vgl.: http://www.mikepick.com/news/archives/2003/09/19/dis…

Man packt also am Ende die beiden Varianten
(mit und ohne JS) je in einen DIV-Container
mit einer passenden #id.

Zunächst ist display:hidden für den „MitJS“-Container
gesetzt, für den anderen („keinJS“) ist durch
display:block gewährleistet, dass er angezeigt
wird.

Bevor die Seite gerendert wird (body onload), schaltet
ein aktiviertes Javascript einfach die display-Tags
um - das wars.

Siehe:

 \<!--
 \<B\>function chkJsOK()\</B\>
 {
 if(document.getElementById) {
 document.getElementById("MitJS").style.display = "block";
 document.getElementById("KeinJS").style.display = "none";
 }
 }
 --\>
 onload="chkJsOK()"\>

 id="KeinJS" style="display:block;"\>
 Das hier ist ID# JS-OFF, also KEIN Javascript oder Browser spinnt! 
 Hier kommt die ganze Seite (und zwar ohne Javascript). 
 id="MitJS" style="display:none;"\>
 Das hier ist ID# JS-ON, also Javascript OK! 
 Hier kommt die ganze Seite (mit Javascript). 

Grüße

CMБ

Hallo Semjon,

das hört sich doch gar nicht so unlogisch an, mal sehen ob ich das gebrauchen kann, vielen Dank schonmal dafür.

Ich hatte eigentlich an einen ganz anderen Ansatz gedacht:

Erst die Prüfung mit JS auf JS-Aktivität. Der aus dieser Funktion heraus erstellte Returnwert (entweder True für aktives JS oder nichts für deaktives) wird z.B. mit PHP weiterverarbeitet und dann entsprechend die Seite aufgebaut.

Ich habe nur definitv keine Ahnung, ob so was überhaupt möglich ist, das war nur so mein Gedankengang.

Kerstin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Experten,
Ich suche nach einer Möglichkeit, abzuprüfen, ob Javascript im
Browser aktiviert ist. Wenn dies nicht der Fall ist, soll bei
Aufruf der Seite eine entsprechende Meldung (z.B. durch ein
Alert) ausgegeben werden.

JavaScript einschalten bitte.