JS ist nicht valide
kubik
- javascript
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
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.
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
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
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
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
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
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
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
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
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
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
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
Hi Harlequin
jetzt läuft wenigstens der Fader wieder, leider wieder die "Fehler",
was mache ich am besten?
Grüße aus Ludwigsburg
Jochen Kubik
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
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
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