kubik: JS ist nicht valide

Hi Leute, da ich mich mit JS nicht wirklich auskenne habe ich einen fremden Bilderfader in meine Seite eingebaut, der funktioniert auch hervorragend, leider meckert der HTML Validator :

line 79 column 22 - Fehler: document type does not allow element "style" here

Hier der Link zur Seite: Link

Gerne würde ich die CCS Definition inline lassen, da ich dadurch über das Backend des CMS darauf zugreifen und ändern kann.

Grüße aus Ludwigsburg

Jochen Kubik

  1. Hi Leute, da ich mich mit JS nicht wirklich auskenne habe ich einen fremden Bilderfader in meine Seite eingebaut, der funktioniert auch hervorragend, leider meckert der HTML Validator :

    line 79 column 22 - Fehler: document type does not allow element "style" here

    Mit JavaScript hat der Fehler genau garnix zu tun - innerhalb deines <body /> befindet sich ein <style />-Element und das hat dort nichts verloren.

  2. Gerne würde ich die CCS Definition inline lassen, da ich dadurch über das Backend des CMS darauf zugreifen und ändern kann.

    Nein, das ist der falsche Ansatz.
    Ich habe bei mir das so gelöst, dass ein Userstylesheet eingebunden werden kann. Es wird dann das externe Stylesheet über das Backend bearbeitet/ausgetauscht.
    Man muss dabei allerdings auf die Spezifität achten. ich habe deshalb eine id #user vorgesehen, welche dann immer erlaubt, eine höhere Spezifität als das Default Stylesheet zu erreichen.

    Bei gleicher Spezifität ist die Reihenfolge der <link> Elemente ausschlaggebend.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  3. Ok, jetzt habe ich die CSS Anweisungen inline ins <div> reingeschrieben, die Fehler sind jetzt weg, leider hat der HTML Validator jetzt 44 Warnungen, die sich haupsächlich aufs JS beziehen, was soll ich machen?

    Grüße aus Ludwigsburg

    Jochen Kubik

    1. Hallo kubik!

      Ok, jetzt habe ich die CSS Anweisungen inline ins <div> reingeschrieben, die Fehler sind jetzt weg, leider hat der HTML Validator jetzt 44 Warnungen,

      Hier nicht. Wo validierst Du?

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --
      _ - jenseits vom delirium - _

         Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
      1. Hi Patrick,
        oh das ist cool,
        ich verwende das FF PlugIn "HTML Validator 0.8.5.2." der zeigt zwar keine Fehler mehr an, aber noch einige Warnungen:

        Result: 0 Fehler / 44 Warnungen

        line 71 column 43 - Warnung: '<' + '/' + letter not allowed here
        line 72 column 15 - Warnung: '<' + '/' + letter not allowed here
        line 75 column 12 - Warnung: '<' + '/' + letter not allowed here
        line 101 column 12 - Warnung: '<' + '/' + letter not allowed here
        line 105 column 4 - Warnung: '<' + '/' + letter not allowed here
        line 107 column 4 - Warnung: '<' + '/' + letter not allowed here
        line 107 column 10 - Warnung: '<' + '/' + letter not allowed here
        line 110 column 68 - Warnung: '<' + '/' + letter not allowed here
        line 111 column 57 - Warnung: '<' + '/' + letter not allowed here
        line 114 column 98 - Warnung: '<' + '/' + letter not allowed here
        line 115 column 137 - Warnung: '<' + '/' + letter not allowed here
        line 116 column 172 - Warnung: '<' + '/' + letter not allowed here
        line 117 column 68 - Warnung: '<' + '/' + letter not allowed here
        line 119 column 94 - Warnung: '<' + '/' + letter not allowed here
        line 120 column 100 - Warnung: '<' + '/' + letter not allowed here
        line 121 column 4 - Warnung: '<' + '/' + letter not allowed here
        line 121 column 10 - Warnung: '<' + '/' + letter not allowed here
        line 122 column 15 - Warnung: '<' + '/' + letter not allowed here
        line 123 column 15 - Warnung: '<' + '/' + letter not allowed here
        line 124 column 43 - Warnung: '<' + '/' + letter not allowed here
        line 131 column 68 - Warnung: '<' + '/' + letter not allowed here
        line 133 column 67 - Warnung: '<' + '/' + letter not allowed here
        line 135 column 17 - Warnung: '<' + '/' + letter not allowed here
        line 135 column 23 - Warnung: '<' + '/' + letter not allowed here
        line 136 column 67 - Warnung: '<' + '/' + letter not allowed here
        line 137 column 14 - Warnung: '<' + '/' + letter not allowed here
        line 138 column 12 - Warnung: '<' + '/' + letter not allowed here
        line 140 column 10 - Warnung: '<' + '/' + letter not allowed here
        line 141 column 27 - Warnung: '<' + '/' + letter not allowed here
        line 142 column 8 - Warnung: '<' + '/' + letter not allowed here
        line 143 column 6 - Warnung: '<' + '/' + letter not allowed here
        line 144 column 5 - Warnung: '<' + '/' + letter not allowed here
        line 145 column 5 - Warnung: '<' + '/' + letter not allowed here
        line 65 column 1 - Warnung: missing </script>
        line 65 column 1 - Warnung: missing </script>
        line 59 column 35 - Warnung: missing </div>
        line 59 column 17 - Warnung: missing </div>
        line 58 column 12 - Warnung: missing </div>
        line 57 column 11 - Warnung: missing </div>
        line 56 column 11 - Warnung: missing </div>
        line 55 column 9 - Warnung: missing </div>
        line 53 column 10 - Warnung: missing </div>
        line 22 column 5 - Warnung: missing </div>
        line 21 column 1 - Warnung: missing </div>
        Info: Doctype given is "-//W3C//DTD XHTML 1.0 Transitional//EN"
        Info: Document content looks like XHTML 1.0 Transitional

        komisch, oder?
        vor allem die in Line 21,22,....65, da sollen divs fehlen, bin überfragt!

        Gibt es ein Programm, wo ich die Div-Paare auf Vollständigkeit checken kann?

        Grüße aus Ludwigsburg

        Jochen Kubik

        1. Yerf!

          komisch, oder?

          etwas... eigentlich sollte es unter XHTML im CDATA-Abschnitt nicht notwendig sein schließende Tags in JS-Strings zu maskieren (also aus </...> ein </...> machen). Vielleicht nur ein Hinweis darauf, dass einige Browser das nicht als XHTML verarbeiten und der Tag-Soup-Parser drüber stolpern könnte.

          vor allem die in Line 21,22,....65, da sollen divs fehlen, bin überfragt!

          Das sind nur Folgefehler.

          Gruß,

          Harlequin

          --
          <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
          1. Hallo Harlequin!

            eigentlich sollte es unter XHTML im CDATA-Abschnitt nicht notwendig sein schließende Tags in JS-Strings zu maskieren (also aus </...> ein </...> machen). Vielleicht nur ein Hinweis darauf, dass einige Browser das nicht als XHTML verarbeiten und der Tag-Soup-Parser drüber stolpern könnte.

            Wir hatten aber hier schon den Fall: https://forum.selfhtml.org/?t=183914&m=1218660

            Viele Grüße aus Frankfurt/Main,
            Patrick

            --
            _ - jenseits vom delirium - _

               Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
            J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
            1. Yerf!

              Wir hatten aber hier schon den Fall: https://forum.selfhtml.org/?t=183914&m=1218660

              Ah, ok. Der Thread bestätigt, dass ich mit meiner Vermutung richtig lag. In XHTML würde der CDATA-Abschnitt reichen, aber für die Abwärtskompatibilität zu HTML muss man trotzdem Escapen.

              Gruß,

              Harlequin

              --
              <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
              1. Hi Harlequin

                ok, escapen ist mir ein Begriff, aber wenn ich das script richt lese hat es da ein paar RegEx drin, und da traue ich mich nicht ran, kann ich das script hier einfach mal posten und einer von euch guckt sich die Sache mal an, wo da \ reinkommen?

                Grüße aus Ludwigsburg

                Jochen Kubik

                1. Yerf!

                  ok, escapen ist mir ein Begriff, aber wenn ich das script richt lese hat es da ein paar RegEx drin, und da traue ich mich nicht ran, kann ich das script hier einfach mal posten und einer von euch guckt sich die Sache mal an, wo da \ reinkommen?

                  Posten ist nicht notwendig, man sieht den Quelltext ja auf deiner Seite.

                  Das Ersetzen ist eigentlich auch relativ einfach: jedes </ muss innerhalb von JavaScript durch </ ersetzt werden, auch bei den RegEx.

                  Gruß,

                  Harlequin

                  --
                  <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
                  1. Hi Harlequin,
                    erster Versuch ging natürlich schief, JS läuft jetzt nicht mehr! :-(

                    Müssen Pfadangaben auch escaped werden?
                    Was ist mit z.B. mit:   "// in sec" (ich denke das ist ein Kommentar, oder?

                    Grüße aus Ludwigsburg

                    Jochen Kubik

                    1. Yerf!

                      Müssen Pfadangaben auch escaped werden?
                      Was ist mit z.B. mit:   "// in sec" (ich denke das ist ein Kommentar, oder?

                      Ähm... nicht jeden /-Schrägstrich escapen, sondern nur dort, wo er in Kombination mit < (Kleiner-Zeichen) auftritt, da nur dort die Verwechslungsgefahr mir einem schließenden HTML-Tag gegeben ist (das ist das eigentliche Problem).

                      Gruß,

                      Harlequin

                      --
                      <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
                      1. Hi Harlequin

                        jetzt läuft wenigstens der Fader wieder, leider wieder die "Fehler",
                        was mache ich am besten?

                        Grüße aus Ludwigsburg

                        Jochen Kubik

                        1. Yerf!

                          jetzt läuft wenigstens der Fader wieder, leider wieder die "Fehler",
                          was mache ich am besten?

                          Am besten den lokalen Validator wegwerfen, dass muss ein Bug sein (ich sehs hier bei mir im FF-Addon aber auch)... Der Code ist in Ordnung, wieso er aber auf die Idee kommt </script> als "nicht erlaubt" anzumeckern nur um später zu behaupten das </script> fehlt... keine Ahnung.

                          Eine andere Lösung ist es konsequent jeden JavaScript-Code in externe Dateien auszulagern.

                          Ein Fehler ist aber trotzdem noch drin (den meldet validator.w3.org): das in zeile 119 geöffnete <li> wird in Zeile 122 nicht geschlossen.

                          Gruß,

                          Harlequin

                          --
                          <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
                          1. Am besten den lokalen Validator wegwerfen, dass muss ein Bug sein

                            Der W3C-Validator ist aber auch nicht unbedingt klüger. Man sollte NIE mit irgendwelchen nicht oder nur halb XML-fähigen SGML-Parsern XHTML validieren.
                            Für XHTML sollte man einen echten XML-Parser samt Schema-Validator verwenden.
                            Der sagt einem natürlich nur, um das XHTML-Dokument okay ist, wenn es als XML verarbeitet werden würde - was der Browser aber üblicherweise nicht tut. Um die HTML-Kompatibilität muss man sich daher selbst Gedanken machen. (Christoph Schneegans' Validator hat jedoch einige Prüfungen hinsichtlich der HTML-Kompatibilitätsrichtlinien eingebaut.)

                            Mathias

                            1. Yerf!

                              » Am besten den lokalen Validator wegwerfen, dass muss ein Bug sein

                              Der W3C-Validator ist aber auch nicht unbedingt klüger.

                              Möglich, mich hat vor allem der Unterschied zwischen dem lokalen (eigentlich auch vom W3C) und dem online gewundert. Allerdings hab ich's grad rausgefunden: aus irgendwelchen Gründen stand der wieder auf "Tidy" als Algorithmus und nicht auf dem SGML-Parser...

                              Gruß,

                              Harlequin

                              --
                              <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->