Hallo Rainer,
ich muss auf einer PHP-Seite feststellen ob JavaScript beim User aktiviert ist um eine unterschiedliche Navigation zu laden.
Das geht nicht, jedenfalls nicht direkt.
Die erste Seite kann Serverseitig noch nicht entscheiden ob sie Clientseitig Script vorfinden wird oder nicht. (Solltest du das dafür nötige Modul mod_hellsehen zufällig vorfinden bitte kurze Nachricht ;-)
Ab der zweiten Seite geht das, dazu hilft der Browser indem er zwei verschieden Seiten anfordert.
Server liefert Seite aus ------>Browser zeigt Seite an und stellt fest
ob Script an oder aus.
Browser/user fordert neue Seite an
<------Anfrage mit Script
<------Anfrage ohne Script
jetzt kann der Server
unterschiedliche Seiten ------>
liefern. ------>
Der Code auf der ersten Seite kann z.b. so Aussehen:
<script> document.write('<a href="seite2.php?jsscript=1">'); </script>
<noscript><a href="seite2.php?jsscript=0"></noscript>
Mit dieser Technik kannst du natürlich auch gleich unterschiedliche Inhalte auf der ersten Seite erzeugen.
Die IMHO günstigste Variante wäre ein Clientseitiger Redirekt im <head> bereich:
<noscript><meta http-equiv="refresh" content="0; URL=http://deinedomain.de/seite.php?ohnejs=1/">
</noscript>
Das ist leider und unverständlicherweise nicht valide, geht aber in allen Browsern die ich bisher getestet habe.
Der umgekehrte Weg, nämlich mittels <script>location.replace("seite.php?mitjs=1"); </script> ist robuster, belästigt(Ladezeit!) aber den grösseren Teil der Besucher mit dem Redirekt.
Gruss,
Carsten