Christoph Schnauß: Frameset vom Validator abgelehnt - warum ?

hi Forum ;-)

ordentlich wie ich nun einmal bin, versuche ich seit einiger Zeit immer mal, meine Seiten beim Validator auf http://validator.w3.org/ durchlaufen zu lassen. Manchmal findet der dann was zu meckern, was sich mir partout nicht erschließ. Zum Beispiel: mit
document.write('<frameset cols="200,*" framespacing="0" border="0" frameborder="0">');
document.write('<frame name="links" src="sitemap.htm">');
document.write('<frame name="main" src="inmain.htm" scrolling="auto">');
document.write('</frameset>');
lasse ich auf einer Seite ein Frameset erzeugen, klappt auch wunderbar, funktioniert im IE, in Netscape und Opera, bloß Amaya machts bekanntlich nicht und nun sagt mir der Validator
"end tag for element "FOO" which is not open"
"The Validator found an end tag, represented here by FOO, without a corresponding start tag"

Ja, wieso das denn ? Und wie kann ich jetzt was am Code korrigieren ? Meines Wissens hab ich doch ein korrespondierendes Start-Tag drinstehen :-(

Christoph S.

  1. Hi,

    document.write('</frameset>');

    innerhalb von von <script> steht CDATA, d.h. HTML-Tags gelten auch als solche, ohne allerdings zwingend interpretiert zu werden. Du hast hier z.B. einen </frameset>-Tag, eingerahmt vom Text "document.write('" und "');". Allerdings wurde aus Sicht eines SGML-Parsers kein <frameset> geöffnet - das gibt's ja schließlich innerhalb von <script> nicht.

    Es ist vielleicht ein bißchen schwer zu verstehen, aber die Lösung lautet '</frameset>', '</'+'frameset>' oder irgendwie sonst, so dass die Zeichenkette "</frameset>" nicht vorkommt. Just do it.

    "end tag for element "FOO" which is not open"

    Hat er wirklich "FOO" gesagt?

    Cheatah

    1. hi,

      Es ist vielleicht ein bißchen schwer zu verstehen, aber die Lösung lautet '</frameset>', '</'+'frameset>' oder irgendwie sonst, so dass die Zeichenkette "</frameset>" nicht vorkommt. Just do it.

      naja, sooooo schwer zu verstehen ist das nun auch wieder nicht, ich hatte schon daran herumgedacht, wie eventuell was zu "maskieren" wäre, kam aber nicht auf die passenden Einträge

      "end tag for element "FOO" which is not open"
      Hat er wirklich "FOO" gesagt?

      das steht tatsächlich in der "Erläuterung", ja. Ich muß aber zugeben, daß ich den Erfinder dieses "foo" glattweg vom weiteren Gebrauch jeglicher Computer ausschließen würde, grrrrr ... alle möglichen Entwickler nenen alle möglichen Beispiele "foo" und keiner sagt mir, was das eigentlich soll ;-(

      Gruß

      Christoph S.