xhtml Validierungsproblem
Raucherkrebs
- javascript
Hallo Forum,
die && stören den Validator. Wie kann man das korrigieren? Ich kann ja nicht einfach && durch amp;amp; ersetzen.
function checkLinkform(form) {
return (checkName(form) &&
checkEmail(form) &&
checkUrl(form));
}
Hallo,
kannst ja da JavaScript in eine externe Datei packen.
mfg Hodenkrebs
Hi,
die && stören den Validator. Wie kann man das korrigieren? Ich kann ja nicht einfach && durch amp;amp; ersetzen.
Lagere das Script aus.
Oder mach ne CDATA-section draus.
cu,
Andreas
Hallo,
die && stören den Validator. Wie kann man das korrigieren? Ich kann ja nicht einfach && durch && ersetzen.
Kann man schon. Das wäre korrektes XHTML. Du du dein XHTML wahrscheinlich sowieso als text/html auslieferst (Dateiendung .htm oder .html), gelten für die Browser die Regeln von HTML. Und in HTML dürfen Entity-Referenzen im script-Element nicht aufgelöst werden, daher würden die Browser in der Tat darüber stolpern.
Da du das XHTML wahrscheinlich in keinem Zusammenhang als wirkliches XHTML (das heißt mit einem XML-Parser) verarbeitest oder verarbeiten lässt, ist es im Prinzip nur eine theoretische Frage. Wie auch immer, du kannst den Validator mit dem besagten CDATA-Abschnitt ruhigstellen:
<script type="text/javascript">
/* <![CDATA[ */
...Code...
/* ]]> */
</script>
http://de.selfhtml.org/xml/regeln/zeichen.htm#cdata
(Die unter http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style genannte Lösung ist übrigens so nicht zu empfehlen.)
Mathias
hi,
<script type="text/javascript">
/* <![CDATA[ */
...Code...
/* ]]> */
</script>http://de.selfhtml.org/xml/regeln/zeichen.htm#cdata
(Die unter http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style genannte Lösung ist übrigens so nicht zu empfehlen.)
könntest du auch kurz ausführen, warum nicht?
gruß,
wahsaga
Hi,
http://de.selfhtml.org/xml/regeln/zeichen.htm#cdata
(Die unter http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style genannte Lösung ist übrigens so nicht zu empfehlen.)
könntest du auch kurz ausführen, warum nicht?
Weil dort das CDATA-Gedöns unkommentiert steht und damit der eine oder andere Javascript-Interpreter Probleme bekommen könnte, falls das vom Parser des Browsers nicht pflichtgemäß entsorgt wird.
cu,
Andreas
Hallo,
(Die unter http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style genannte Lösung ist übrigens so nicht zu empfehlen.)
könntest du auch kurz ausführen, warum nicht?
Zum einen das, was Andreas sagte. Zum anderen dürfen XML-Parser den Kommentarinhalt verwerfen, sodass beim JavaScript-Interpreter nichts ankäme. Gecko ist meines Wissens der einzige Browser, der dies macht. In einem als application/xhtml+xml ausgelieferten XHTML-Dokument wird ein Script mit <script type="text/javascript"><!-- --></script> nie ausgeführt. Bei früheren Geckos war das meines Wissens anders. Ein wenig gekünstelt bzw. gezwungen finde ich es schon. Ich sehe keinen Grund dazu, schließlich erzeugt ein solcher Code ansonsten einen sauberen DOM-Baum (der Kommentar wird also nicht schon beim reinen Parsen stillschweigend herausgeschnitten) und der Zugriff auf den Kommentartext ist problemlos möglich. Eine regelgemäße Serialisierung (z.B. über textContent) würde dem JavaScript-Interpreter den richtigen Code liefern, aber Gecko implementiert das wohl so aus irgendwelchen ideologischen oder erzieherischen Gründen, vernünftige in sich schlüssige sind es ganz offenbar nicht. Wie auch immer, die Lösung von SELFHTML wird in einem XHTML-Dokument daher nicht im Gecko funktionieren. Opera und KHTML sind in diesem Punkt toleranter, der Deutung einiger zufolge weniger standardkonform.
http://www.w3.org/TR/REC-xml/#sec-comments
http://www.w3.org/TR/xhtml1/#C_4
Mathias