nokill2003: <noscript> reicht 1* pro Htmldokument?

Hi,
Wollte nur schnell fragen wie oft man <noscript></noscript> in einem HtmlDokument mit mehreren Scripten schreiben muss? Beisp:
<html>
   <head>
      <title>Titel des Dokuments</title>

<script type="text/javascript" language="javascript">
         <!--
              var IE=navigator.appName.indexOf("Explorer");
              var OP=navigator.appName.indexOf("Opera");
              if(IE>-1 || OP>-1){
                                 document.write("<bgsound src='music.mid' loop='infinite'>");
           }
         // -->
      </script>

<noscript>
         Sie haben leider kein Javascript aktiviert!
      </noscript>

<head>

<body>

<script type="text/javascript" language="javascript">
          <!--
               var NS=navigator.appName.indexOf("Netscape");
               if(NS>-1){
                         document.write("<embed src='music.mid' autostart='true' loop='true' hidden='true' height='0' width='0'">);
    }
          // -->
      </script>

<noscript>
         Sie haben kein Javascript aktiviert!
      </noscript>
   </body>
</html>

Ist es jetzt so (mit hinter jedem Script einmal) richtig oder reicht einmal <noscript></noscript> für mehrere Scripte?

Es wäre nett wenn ihr auch mal nach der Korrektheit der Scripte guckt.
cu nokill2003

  1. Moin!

    Wollte nur schnell fragen wie oft man <noscript></noscript> in einem HtmlDokument mit mehreren Scripten schreiben muss?

    So häufig, wie es Sinn macht.

    Bedenke: Das Konzept von <noscript> ist nicht, die Anzahl von <script> dem unbedarften User bekanntzugeben, sondern _ALTERNATIVEN_ darzustellen, damit man auch ohne Javascript den Effekt des Javascripts - vielleicht umständlicher oder mit mehr Geklicke - erreichen kann.

    Beispiel: Bei heise.de gibts oben eine Drop-Down-Liste, um schnell zu einigen Seiten zu gelangen. Mit Javascript selektiert man einen Eintrag und kommt direkt dahin. Ohne Javascript erscheint ein Submit-Button im <noscript>-Bereich, der das Formular an den Server schickt und dadurch einen Redirect erzeugt auf die gewünschte Seite.

    Genau für sowas ist <noscript> da: Alternativen für scriptlose Besucher darzustellen, die mit scriptfähigen Browsern optisch vielleicht stören oder verwirren würden.

    <html>
       <head>
          <title>Titel des Dokuments</title>

    <script type="text/javascript" language="javascript">
             <!--
                  var IE=navigator.appName.indexOf("Explorer");
                  var OP=navigator.appName.indexOf("Opera");
                  if(IE>-1 || OP>-1){
                                     document.write("<bgsound src='music.mid' loop='infinite'>");
               }
             // -->
          </script>

    <noscript>
             Sie haben leider kein Javascript aktiviert!
          </noscript>

    Das ist Schwachsinn. Innerhalb von <head> darf sowieso kein Text kommen, der im Browser dargestellt werden würde.

    <head>

    <body>

    <script type="text/javascript" language="javascript">
              <!--
                   var NS=navigator.appName.indexOf("Netscape");
                   if(NS>-1){
                             document.write("<embed src='music.mid' autostart='true' loop='true' hidden='true' height='0' width='0'">);
        }
              // -->
          </script>

    <noscript>
             Sie haben kein Javascript aktiviert!
          </noscript>

    Und das hier ist auch Schwachsinn. Wenn du Hintergrundmusik haben willst (was seinerseits schon blödsinnig ist), dann benutze <noscript> dafür, eine Musikeinbindung zu benutzen, die einfach vom meistverwendeten Browser ausgeht und dafür Musik einbindet.

    Abgesehen davon: Man kann auch ohne Browserdetection Hintergrundmusik für alle Browser funktionierend einbinden.

    Wenn ein Browser ein HTML-Tag nicht kennt, ignoriert er es und stellt dessen Inhalt dar. Da <bgsound> und <embed> beide keinen Inhalt haben, wird deine Hintergrundmusik also in allen Browsern (die einen der beiden Tags kennen) funktionieren - vollkommen ohne nervige Benutzerinformation über fehlendes Javascript, und auch ohne die Notwendigkeit für Javascript.

    </body>
    </html>

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. Nochmal hi,

      <html>
         <head>
            <title>Titel des Dokuments</title>

      <script type="text/javascript" language="javascript">
               <!--
                    var IE=navigator.appName.indexOf("Explorer");
                    var OP=navigator.appName.indexOf("Opera");
                    if(IE>-1 || OP>-1){
                                       document.write("<bgsound src='music.mid' loop='infinite'>");
                 }
               // -->
            </script>

      <noscript>
               Sie haben leider kein Javascript aktiviert!
            </noscript>

      Das ist Schwachsinn. Innerhalb von <head> darf sowieso kein Text kommen, der im Browser dargestellt werden würde.

      Stimmt nicht ganz denn <bgsound> wird im head bereich definiert! Siehe [url]http://selfhtml.teamone.de/html/dateiweit/hintergrundmusik.htm#einbinden[/url]

      Nochmal danke und
      cu nokill2003

      1. Moin!

        Das ist Schwachsinn. Innerhalb von <head> darf sowieso kein Text kommen, der im Browser dargestellt werden würde.

        Stimmt nicht ganz denn <bgsound> wird im head bereich definiert! Siehe [url]http://selfhtml.teamone.de/html/dateiweit/hintergrundmusik.htm#einbinden[/url]

        Ja, klar. Wenn Javascript ausgeführt wird, wird <bgsound> in den Headbereich geschrieben. Wenn _kein_ Javascript ausgeführt wird, steht dank <noscript> der Text "Sie haben leider kein Javascript aktiviert!" im Head-Bereich. Und _das_ ist nicht erlaubt, weil Text im Head-Bereich implizit den <head> davor beendet und <body> implizit öffnet. Start- und Endtag von <head> und <body> ist nämlich optional.

        Solltest du hinter dem <noscript> noch Elemente wie <meta> haben, die nur im Head vorkommen dürfen, wäre dein Dokument invalide. Und das nachfolgende Vorkommen von <body> ist ohnehin invalide, da es implizit schon geöffnet wurde.

        Aber wie ich insgesamt schon sagte: Es lohnt gar nicht, die Unterscheidung mit Javascript zu machen, weil jeder Browser das beachtet und ausführt, was er kennt. Warum also den Trouble.

        Und abgesehen davon: Du machst hier mit Javascript nichts, was irgendwie relevant für den Benutzer wäre, es ist ein reines Zusatzgimmick, auf das man, ohne Benutzbarkeit zu verlieren, auch verzichten kann. Warum also den Benutzer mit irrelevanten <noscript>-Meldungen nerven? :)

        - Sven Rautenberg

        --
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
  2. Das kommt immer darauf an, was du erreichen willst. So wie du es verwendest ist es zumindest im Head auf jeden Fall falsch. Das was zwischen <noscript> und </noscript> steht, wird  ausgeführt, wenn JavaScript deaktiviert ist. Es macht natürlich keinen Sinn "Sie haben leider kein Javascript aktiviert!" im Head aus zu führen. Bei den meisten Scripten macht ein Noscript-Bereich gar keinen Sinn. Du solltest es nur verwenden, wenn du erreichen willst, dass etwas bestimmtes passiert wenn der User JavaScript deaktiviert hat. Und dann solltest du auch nur genau das in den Bereich schreiben. Es ist fast immer schlecht, einfach zu jedem Scriptbereich immer den selben Noscriptbereich zu machen.

  3. Hi,

    Wollte nur schnell fragen wie oft man <noscript></noscript> in einem HtmlDokument mit mehreren Scripten schreiben muss? Beisp:

    noscript dient dazu, scriptfreie Alternativen anzubieten. Wenn Du keine Alternative anbieten willst/kannst, ist auch kein noscript nötig.

    <html>
       <head>
          <title>Titel des Dokuments</title>
          <script type="text/javascript" language="javascript">
          </script>
         <noscript>

    Im head ist noscript gar nicht erlaubt.

    <script type="text/javascript" language="javascript">
          </script>
          <noscript>
             Sie haben kein Javascript aktiviert!
          </noscript>

    Du bietest hier keine Alternative, also weg damit.

    </body>
    </html>

    Ist es jetzt so (mit hinter jedem Script einmal) richtig oder reicht einmal <noscript></noscript> für mehrere Scripte?

    Nein. So wie Du es verwendest, ist es falsch. s.o.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/