Ingo Siemon: Abfragen, ob der User-Browser JavaScript an hat

Hallo Ihr Lieben

Meine Seite funktioniert eigentlich nur,
wenn der User JavaScript aktiviert hat.

Nun würde ich gerne erreichen, dass, wenn er kein
JavaScript aktiviert hat, eine extra Hinweis-Seite
erscheint, auf der dann eben steht, dass die Seite nur
mit eingeschaltetem Javascript funktioniert.

Wie lässt sich sowas am besten lösen ?
Über Tipps und Hilfe von Euch
würde ich mich wirklich SEHR freuen :)

Gruß aus Münster
Ingo Siemon

  1. Hi Ingo,

    Meine Seite funktioniert eigentlich nur,
    wenn der User JavaScript aktiviert hat.

    das ist schlecht. Ich habe es größtenteils deaktiviert.

    Nun würde ich gerne erreichen, dass, wenn er kein
    JavaScript aktiviert hat, eine extra Hinweis-Seite
    erscheint, auf der dann eben steht, dass die Seite nur
    mit eingeschaltetem Javascript funktioniert.

    Menschen, die einen grafischen Browser mit Javascript nicht nutzen *können* werden sich ebenso darüber freuen wie Suchmaschinen. JS kann durchaus nützlich sein, niemals aber Voraussetzung.

    Wie lässt sich sowas am besten lösen ?

    http://selfhtml.teamone.de/html/transit/scripts.htm#noscript

    Grüße,
     Roland

  2. Hi Ingo,
    Am besten erstellst du eine reine HTML-Version, die du standardmäßig verlinkst.
    In diese Seite fügst du ein Javascript ein, welches mit location.replace() zu deiner Javascriptversion weiterleitet.
    Fertig ist der Zauber.
    Du hast damit gleich 3(4) Vorteile auf einmal:

    1. Die seite ist für non-JS Besucher nutzbar,
    2. Besucher mit aktiviertem JS merken in der Regel nichts von der Weiterleitung,
    3. Du ersparst dir aufwendige Scripte mit unsicheren Abfragen und
    4. Bei Verwendung von location.replace() bleibt die History von der Weiterleitung verschont, somit funktioniert auch der Zurück-Button des Browsers weiterhin ganz normal.

    Für den suboptimaleren Fall, dass du dir die NON-JS-Seiten ersparen willst, bleibt die Vorgehensweise dieselbe, nur dass auf der Eingangsseite statt der Homepage mit den Links nur ein "Leider, leider..." stehen würde...

    Die optimalste Lösung wäre an sich sowieso, die Seiten so zu gestalten, dass sie unter allen Voraussetzungen nutzbar sind.
    Dies lässt sich auch bei JS-Navigationen realisieren, sei es mit einem vernünftigen noscript-Bereich oder/und auch mit serverseitigen Techniken.

    Gruß

    Kurt

    --
    > Nein, ich beantworte keine Anfragen per e-mail.
    "Viele Leute kaufen mit Geld, was sie nicht haben. Dinge, die sie nicht brauchen, um Leuten zu imponieren, die sie nicht ausstehen koennen."  (Sprichwort)
    http://elektro-dunzinger.at
    http://shop.elektro-dunzinger.at
    1. Hallo,

      Die optimalste Lösung wäre an sich sowieso, die Seiten so zu gestalten, dass sie unter allen Voraussetzungen nutzbar sind.

      Da gebe ich dir vollkommen recht, aber

      Dies lässt sich auch bei JS-Navigationen realisieren, sei es mit einem vernünftigen noscript-Bereich oder/und auch mit serverseitigen Techniken.

      was serverseitige Techniken damit zu tun haben ist mir eher schleierhaft. Der Server weißt nichts über den Client, schon gar nicht, ob dieser JavaScript unterstützt oder nicht. Die Einstellung auf mit/ohne JS kann also nur durch clientseitige Techniken erfolgen. (Im Idealfall so, dass jeder die selbe HTML Seite vorgesetzt bekommt und der JS Code allerhöchstens noch ein paar Schmankerl oben auf setzt die Leute ohne JS dann halt nicht zu sehen bekommen.)

      Viele Grüße,

      Stefan

      --
      Lass dir das Tanzen NICHT verbieten
      http://tanzverbot.de
      1. Hi Stefan,

        Dies lässt sich auch bei JS-Navigationen realisieren, sei es mit einem vernünftigen noscript-Bereich oder/und auch mit serverseitigen Techniken.

        was serverseitige Techniken damit zu tun haben ist mir eher schleierhaft. Der Server weißt nichts über den Client, schon gar nicht, ob dieser JavaScript unterstützt oder nicht. Die Einstellung auf mit/ohne JS kann also nur durch clientseitige Techniken erfolgen. (Im Idealfall so, dass jeder die selbe HTML Seite vorgesetzt bekommt und der JS Code allerhöchstens noch ein paar Schmankerl oben auf setzt die Leute ohne JS dann halt nicht zu sehen bekommen.)

        Das war von mir etwas missverständlich ausgedrückt.
        Serverseitige Techniken funktionieren in diesem Zusammenhang natürlich nicht für sich alleine, nur im Zusammenspiel mit JS. Für das Problem an sich sind sie ja nicht relevant, man könnte damit nur, im Zusammenhang mit JS, völlig dynamische Navigationen erstellen, die sich an die Bedürfnisse des Besuchers anpassen.
        Auf meinen Seiten habe ich beispielsweise auch einen dynamischen Link integriert, der serverseitig erzeugt wird, der, natürlich nur im Zusammenhang mit Javascript, Alternativen ermöglicht.
        -----------------------------
        <?php
        $ausgabe="<a class=\"wechsel\" href=\"index.php";
         if(isset($_GET["menu"]))
          {
           unset($_GET["menu"]);
          }
         if(isset($_GET["content"]))
          {
           $ausgabe.= "?";
           $trenner="";
          foreach($_GET as $key=>$elem)
            {
             $ausgabe.= $trenner.$key."=".$elem;
             $trenner="&";
            }
          }
          echo "<script type="text/javascript">\n <!--\n";
          echo "  if(! document.layers){\n";
          echo "document.write("";
          echo $ausgabe."\">Zum Ausklappmenü</a>");\n";
          echo "}\n //-->\n</script>";
          ?>
        -----------------------------
        Eher eine Spielerei, nichtsdestotrotz ein Zusammenspiel von Server- und Clienttechnologie.
        Man möge mir die unklare Ausdrucksweise verzeihen. :-)

        Gruß

        Kurt

        --
        > Nein, ich beantworte keine Anfragen per e-mail.
        "Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger."  (Kurt Tucholsky; dt. Schriftsteller u. Satiriker; 1890-1935)
        http://elektro-dunzinger.at
        http://shop.elektro-dunzinger.at