Marco: Abfrage: JS aktiviert

Hallo,

ich suche eine Abfrage, die checkt, ob der User JavaScript aktiviert/deaktiviert hat.

Vielen Dank,
Marco

  1. Hallo,
    In Javascript anfragen, ob ein User JavaScript aktiviert hat, wird bei einem User, der JavaScript deaktiviert hat etwas schwierig :)

    Aber du kannst den
    <noscript>-Tag verwenden, um HTML-Anweisungen zu setzen, die nur im Falle eines Nicht-JS-Users ausgeführt werden.

    Grüße,
    Jörg

    1. Danke für deine Antwort.

      In Javascript anfragen, ob ein User JavaScript aktiviert hat, wird bei einem User, der JavaScript deaktiviert hat etwas schwierig :)

      Natürlich hast du recht!

      Aber du kannst den
      <noscript>-Tag verwenden, um HTML-Anweisungen zu setzen, die nur im Falle eines Nicht-JS-Users ausgeführt werden.

      Ok, eine Möglichkeit.
      Kann ich in einer anderen Art und Weise abfragen, ob JS aktiviert/deaktiviert ist?

      PS: Damit wäre das Beitragsthema nur noch teilweise korrekt....

      1. Hallo Marco,

        Ok, eine Möglichkeit.
        Kann ich in einer anderen Art und Weise abfragen, ob JS aktiviert/deaktiviert ist?

        Was möchtest Du denn damit genau erreichen?

        Gruß,
        small-step

        1. Ich möchte wissen, ob der User JS aktiviert hat. Wenn nicht, sollen andere Elemente gezeigt werden.

          Klar kann ich das einerseits mit den <noscript>-Tag machen, aber gibt's noch eine andere Möglichkeit - eine Abfrage evtl. ?

          Gruß, Marco

          1. Hallo Marco,

            Ich möchte wissen, ob der User JS aktiviert hat. Wenn nicht, sollen andere Elemente gezeigt werden.

            Klar kann ich das einerseits mit den <noscript>-Tag machen, aber gibt's noch eine andere Möglichkeit - eine Abfrage evtl. ?

            Du kannst mit JS vorhandene Elemente ersetzen. Wenn kein JS vorhanden ist, wird nichts ersetzt. Wozu eine Abfrage? Aber der <noscript>-Tag ist eigentlich genau für diesen Fall vorhanden. Warum nicht nutzen? http://de.selfhtml.org/html/transit/scripts.htm#noscript

            Gruß,
            small-step

            1. Ok - weiter gehts....

              Der display:none Befehl passt sehr gut. Der sollte aber nur ausgeführt werden, wenn der User JS deaktiviert hat. Mit Hilfe des <noscript>-Tags werden dann manche Elemente versteckt und andere Elemente gezeigt.
              Hier der vereinfachte Code:

              Da hier soll passieren, wenn js aktiviert ist:
              <td><a href="javascript:los()" onfocus="this.style.background='#e2e2f9'" onblur="this.style.background='#f5f5f5'" onclick="return chkkontakt();">Senden </a></td>

              das hier soll passieren, wenn js deaktiviert ist:
              <noscript><td style="display:none"><a href="javascript:los()" onfocus="this.style.background='#e2e2f9'" onblur="this.style.background='#f5f5f5'" onclick="return chkkontakt();">Senden </a></td>

              <td><input type="submit" name="abschicken" value="Senden"></td></noscript>

              Ich habe absolut keine Ahnung, wie ich weiter vorgehe....

              1. Hallo Marco!

                Ok - weiter gehts....

                Gut! ;)

                Da hier soll passieren, wenn js aktiviert ist:
                <td><a href="javascript:los()" onfocus="this.style.background='#e2e2f9'" onblur="this.style.background='#f5f5f5'" onclick="return chkkontakt();">Senden </a></td>

                Du meinst, dass diese Zelle sichtbar sein soll, wenn JS aktiviert ist, und eben nicht sichtbar, wenn nicht? Noch eine Frage vorab... geht es nur um die eine Zelle, oder sind es mehrere? Wenn es mehrere sind, sowas ähnliches haben wir mit Chris schon durch: https://forum.selfhtml.org/?t=138167&m=897378

                Wenn es nur um die eine Zelle geht, brauchst Du den noscript-Bereich in dem Fall nicht. Du weist der Zelle die Eigenschaft display:none. Für User mit aktiviertem JavaScript, ermittelst Du die Zelle mit getElementById und änderst die display-Eigenschaft:

                CSS:
                #etwas {
                display:none;
                }

                HTML:
                <td id="etwas">Zelleninhalt</td>

                JavaScript:
                function show_cell() {
                getElementById('etwas').style.display = '';
                }

                <body onload="show_cell();">

                Is JavaScript nicht aktiv, wird ob der display-Eigenschaft (none) die Zelle nicht angezeigt. Ist JavaScript aktiviert, verändert die Funktion show_cell() die display-Eigenschaft, die Zelle ist sichtbar.

                Viele Grüße aus Frankfurt/Main,
                Patrick

                --

                _ - jenseits vom delirium - _
                <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
                1. Korrektur!

                  JavaScript:
                  function show_cell() {
                  getElementById('etwas').style.display = '';
                  }

                  Muss heißen: document.getElementById('etwas').style.display = '';

                  Viele Grüße aus Frankfurt/Main,
                  Patrick

                  --

                  _ - jenseits vom delirium - _
                  <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
                  1. Danke für deine Hilfe bis hier hin.

                    In diesem Bereich bin ich leider kein Crack, also habe ich noch weitere Fragen:
                    Muss es nicht heißen
                    (Formular)

                    <script language="text/javascript">

                    function show_cell() {
                            if (document.getElementById)
                            document.kontakt.getElementById('etwas').style.display ="inline";
                            }
                          </script>

                    Ich habe alles so gemacht, wie du es mir geraten hast. Die Zelle wird nun trotz aktiviertem JS versteckt... :-/
                    Und ja, es handelt sich um nur eine Zelle.

                    Gruß, Marco

                    1. Hallo Marco!

                      <script language="text/javascript">

                      function show_cell() {
                              if (document.getElementById) //für moderne Browser eigentlich überflüssig
                              document.kontakt.getElementById('etwas').style.display ="inline";
                              }
                            </script>

                      Die Abrage if (document.getElementById) ist für derzeit eingesetzte Browser eigentlich überflüssig - ich glaube nicht, dass noch so viele Netscape 4.x und IE 4, sowie Browser, denen diese Methode fremd ist, im Einsatz sind. Stören tut sie allerdings nicht.

                      document.kontakt.getElementById('etwas').

                      ^^^^^^^
                      Was ist das? Name des Formulars? Die Tabellenzelle ist aber kein Formularelement.

                      style.display ="inline";

                      Hier ist evtl. style.display =""; besser, falls durch "inline" das Aussehen der Tabelle verändert wird. Siehe Thread, auf dem ich in meinem letzten Post verwies.

                      Ich habe alles so gemacht, wie du es mir geraten hast.

                      Anscheinend nicht ganz so ;)

                      Viele Grüße aus Frankfurt/Main,
                      Patrick

                      --

                      _ - jenseits vom delirium - _
                      <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
                      1. Danke,

                        nun funktioniert es bei mir :-)

          2. Hallo Marco!

            Ich möchte wissen, ob der User JS aktiviert hat. Wenn nicht, sollen andere Elemente gezeigt werden.

            Dann arbeite mit der visibility oder display-Eigenschaft dieser Elemente. Die Elemente, die bei nicht aktiviertem JavaScript nicht angezeigt werden sollen, bekommen bei aktiviertem JavaScript ein visibility:hidden oder display:none, sind sichtbar für diejenigen User, die kein JavaScript aktiviert haben.

            Viele Grüße aus Frankfurt/Main,
            Patrick

            --

            _ - jenseits vom delirium - _
            <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
            1. Ups!

              Dann arbeite mit der visibility oder display-Eigenschaft dieser Elemente. Die Elemente, die bei nicht aktiviertem JavaScript angezeigt werden sollen, bekommen bei aktiviertem JavaScript ein visibility:hidden oder display:none, sind sichtbar für diejenigen User, die kein JavaScript aktiviert haben.

              ^SO ist der Satzt jetzt richtig

              Viele Grüße aus Frankfurt/Main,
              Patrick

              --

              _ - jenseits vom delirium - _
              <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
  2. Vielen Dank für eure Antworten - werde einiges ausprobieren!