erika: Validator

Hallo liebe community,
in meine Website (Abschlußarbeit an der VHS) habe ich (zunächst nur für den Monat
Januar) eine einfache Browserweiche mit Javascript eingefügt. Da sich auf den
Computern der VHS zur Zeit nur der NN 4.75 und der IE 5.5 befinden,ist das
Script völlig ausreichend und funktioniert auch.
Wenn ich aber die Datei browserweiche1.html mit einem Validator(http://validator.w3.org)
prüfen lassen, erhalte ich folgende Fehlermeldung:
Below are the results of attempting to parse this document with an SGML parser.
· Line 20, column 6:
·   </head>
        ^
Error: end tag for element "HEAD" which is not open; try removing the end tag or check for improper nesting of elements
· Line 21, column 63:
·   <body onLoad="BrowserWeiche()">
                                                                 ^
Error: element "BODY" not allowed here; check which elements this element may be contained within
Below is the source input I used for this validation:
   1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
   2: <html>
   3: <head>
   4: <title>Einnahmen-&Uuml;berschussrechnung: Browser</title>
   7: <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
   9: <script type="text/javascript">
  10: <!--
  11: function BrowserWeiche()
  12: {if(navigator.appName.search("Netscape")==-1)
  13: {location.href="januar.html";}
  14: else
  15: {location.href="januar1.html";}
  16: }
  17: //-->
  18: </script>
  19: <noscript>Bitte aktivieren Sie Javascript, damit Sie die Tabelle sehen können.</noscript>
  20: </head>
  21: <body onLoad="BrowserWeiche()">
  22: <!--Wenn Browser nicht NN, dann nimm januar.html, sonst nimm januar1.html-->
  23: </body>
  24: </html>

Wieso findet der Parser nicht das Head-Anfangs-Tag in Zeile 3?
Und wieso ist Body in Zeile 21 nicht erlaubt?
Oder lassen sich Seiten mit Javascript nicht validieren?

Gruß
erika

  1. Tag auch

    Error: end tag for element "HEAD" which is not open; try removing the end tag or check for improper nesting of elements

    19: <noscript>Bitte aktivieren Sie Javascript, damit Sie die Tabelle sehen können.</noscript>
      20: </head>

    Wahrscheinlich hat sich der Parser gefragt, was die Noscript-Angabe im head-Bereich zu suchen hat - denke ich mal...

    Thomas J.

    1. Tag auch

      Error: end tag for element "HEAD" which is not open; try removing the end tag or check for improper nesting of elements

      19: <noscript>Bitte aktivieren Sie Javascript, damit Sie die Tabelle sehen können.</noscript>
        20: </head>

      Wahrscheinlich hat sich der Parser gefragt, was die Noscript-Angabe im head-Bereich zu suchen hat - denke ich mal...

      Thomas J.

      Danke, das war's!
      Jetzt hab ich die Nocript-Angabe in den Body gepackt, und nun findet auch der Validator keinen Fehler mehr!

      Ulli Meybohms HTML-Editor weist die Nocript-Angabe im Head aus, und auch Ralph Steyer macht es so im Buch "Javascript in 21 Tagen" (Seite 138).
      Nach der HTML-Referenz von Selfhtml dürfte das aber nicht richtig sein.

      Wieder was dazu gelernt.

      Herzliche Grüße
      erika