michael: xhtml: validator motzt bei "&&" aus JavaScript im quelltext

hallo alle zusammen,

zitat aus selfhtml:
"Mit dem logischen Operator && verknüpfen Sie zwei oder mehrere Bedingungen durch "und" "

mein problem ist nun folgendes:
mein JS steht im body meiner site.
wenn ich die site nun xhtml-kompartibel machen will,
dann beschwert sich der validator über das "&", das ja eigentlich per & kodiert sein sollte.
ein "&&" anstelle von "&&" kennt aber JS natürlich nicht ??

was kann ich also machen um mein dokument valide zu bekommen?
(abgesehen davon, das JS rauszuschmeißen?)

vielen dank für eure hilfe,
grüße,
michael

p.s.: wiso übergeht das der validator eigentlich nicht einfach?
ich dachte, der validiert nur (x)html? ich meine, eigentlich ist das doch JS und kein html...?

  1. Hi,

    mein JS steht im body meiner site.
    wenn ich die site nun xhtml-kompartibel machen will,

    Welche XHTML-Version? Welcher content-type?
    Steht das Script in einer CDATA-Section?

    Lauter Fragen, die Du eigentlich schon hättest beantworten können, wenn Du einfach einen Link auf die betroffene Seite mitgeliefert hättest ...

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Genau um solche Probleme zu vermeiden, lagere ich Scripts in separate Dateien aus - ist das einfachste !

    2. Hallo,

      mein JS steht im body meiner site.
      wenn ich die site nun xhtml-kompartibel machen will,

      Welche XHTML-Version? Welcher content-type?

      Wieso ist das relevant?
      XHTML 1.0 (Strict, Transitional, Frameset) und XHTML 1.1 unterscheiden sich in dem Punkt nicht.
      Und die Frage tritt immer auf, wenn man gültiges X(HT)ML schreiben will (davon wollen wir einmal ausgehen), das hängt nicht davon ab, wie man das Dokument letztlich ausliefert.

      Mathias

  2. mein JS steht im body meiner site.
    wenn ich die site nun xhtml-kompartibel machen will,

    ... dann hast du schlechte Karten, wenn im Script & oder -- vorkommt.

    http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style

    Gunnar

    --
    "(Der Student) kann sich so völlig dem hingeben, was er naiv für die Computerwissenschaft hält, also der bloßen Verfeinerung seiner Programmiertechniken, daß er sich auf diese Weise effektiv daran hindert, etwas wirklich Wesentliches zu studieren."
    (Joseph Weizenbaum in "Die Macht der Computer und die Ohnmacht der Vernunft")
  3. Hallo,

    ein "&&" anstelle von "&&" kennt aber JS natürlich nicht ??

    Hast du es mal ausprobiert? Ich könnte fast wetten dass es mit "&&" funktioniert.

    Grüße
    Jeena Paradies

    --
    In der Schweiz auf Tour mit Jeena
    http://jeenaparadies.de/weblog/2004/august/schweiz/
    Kinder schlagen zu Erziehungszwecken ist in Deutschland verboten!
    http://jeenaparadies.de/artikel/kinderschlagen/
    Jeenas Bannertauschportal; selbstgemacht ;-)
    http://jeenasbannerbude.de
  4. Hallo michael,

    ein "&&" anstelle von "&&" kennt aber JS natürlich nicht ??

    Nein, aber der XML Parser sollte && durch && ersetzen. Der Javascript Interpreter bekommt dann nur && zu sehen. Jedenfalls, wenn die XHTML Unterstüzung korrekt implementiert ist.
    Alternativ kannst Du das ganze Script in einen CDATA-Abschnitt packen:
    <script type="text/javascript">
    <![CDATA[
    script mit <> &
    ]]>
    </script>

    Wenn auch ältere Browser mit der Seite klar kommen sollen, ist es aber vermutlich am einfachsten, das Script auszulagern.

    Grüße

    Daniel

    1. Hi,

      <![CDATA[
      script mit <> &

      ... aber ohne "if (foo[bla[blub]]>42)".

      Chea "Wollt's nur gesagt haben :-)" tah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hallo,

        ... aber ohne "if (foo[bla[blub]]>42)".

        ... weil ]]> den CDATA-Abschnitt beendet, aber "if (foo[bla[blub]] >42)" loest dieses Problem.

        MfG, Thomas

      2. Hallo Cheatah,

        ... aber ohne "if (foo[bla[blub]]>42)".

        Vor und nach binären Operatoren fügt man auch ein leerzeichen ein...

        Grüße

        Daniel

    2. Hallo,

      ein "&amp;&amp;" anstelle von "&&" kennt aber JS natürlich nicht ??
      Nein, aber der XML Parser sollte &amp;&amp; durch && ersetzen. Der Javascript Interpreter bekommt dann nur && zu sehen. Jedenfalls, wenn die XHTML Unterstüzung korrekt implementiert ist.

      ...was bekanntlich keine Rolle spielt, wenn das Dokument sowieso als text/html ausgeliefert wird.
      Der Validator legt natürlich stur seinen XML-Parser an, für HTML-Browser hingegen ist nur »</« gefährlich.

      Alternativ kannst Du das ganze Script in einen CDATA-Abschnitt packen:
      <script type="text/javascript">
      <![CDATA[
      script mit <> &
      ]]>
      </script>

      Wenn auch ältere Browser mit der Seite klar kommen sollen, ist es aber vermutlich am einfachsten, das Script auszulagern.

      Daher schreibt man zumindest:

      <script type="text/javascript">
      // <![CDATA[
      ...
      // ]]>
      </script>

      Für <![CDATA[ ist im Gegensatz zu <!-- nicht festgelegt, dass es am Anfang von script stehen darf, aber die Browser sind diesbezüglich sowieso sehr tolerant.

      Mathias