mpa
Mitglied
Registriert: 04.12.2006
Beiträge: 2
|
|
Hallo, ich habe einen einzigen Fehler auf der Homepage, der ich nicht beheben kann. Und zwar "Endtag FRAMESET zu einem nicht vorhandenen Starttag gefunden. Fehlerstelle: document.writeln(' </frameset>'); "
Ein Teil der Code ist:
<SCRIPT language="JavaScript" type="text/javascript"> <!-- var MainFrameURL; if (FrameURL == '') { MainFrameURL = 'kurzinfo.htm'; } else { MainFrameURL = FrameURL; } document.writeln('<frameset rows="265,*" frameborder="NO" border="0" framespacing="0">'); document.writeln(' <frame name="Oben" scrolling="no" noresize target="Oben" src="http://www.energiemessen.de/menu.htm" marginwidth="0" marginheight="0">'); document.writeln(' <frame name="mainFrame" src="' + MainFrameURL + '" marginwidth="0" marginheight="0">'); document.writeln(' </frameset>'); //--> </SCRIPT> Was ist falsch? Danke für die Antwort.
|
|
| 04.12.2006 11:37:32 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 544
|
|
|
| 04.12.2006 13:34:15 |
|
|
|
In diesem Fall nicht, die Kommentarsyntax hat ja nur in Pre-HTML-3.2-User-Agents eine Funktion, da seit HTML 3.2 der Inhalt eines script-Elements als CDATA definiert ist. Da ab dem script-Starttag nach dem (passenden) Endtag gesucht wird, welches mit dem nächsten folgenden ETAGO ("</") eingeleitet wird, ist das in diesem Fall das "</frameset>". Dies ist natürlich falsch, es müsste ja "</script>" gefunden werden.
In XHTML wäre es natürlich PCDATA und der Kommentar würde wieder wie vor HTML 3.2 funktionieren, allerdings würde dann eben auch das Script selbst mir verschluckt werden.
Siehe auch http://www.w3.org/TR/html4/types.html#h-6.2
| Although the STYLE and SCRIPT elements use CDATA for their data model, for these elements, CDATA must be handled differently by user agents. Markup and entities must be treated as raw text and passed to the application as is. The first occurrence of the character sequence "</" (end-tag open delimiter) is treated as terminating the end of the element's content. In valid documents, this would be the end tag for the element. |
und http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.2
| When script or style data is the content of an element (SCRIPT and STYLE), the data begins immediately after the element start tag and ends at the first ETAGO ("</") delimiter followed by a name start character ([a-zA-Z]); note that this may not be the element's end tag. Authors should therefore escape "</" within the content. Escape mechanisms are specific to each scripting or style sheet language. |
Dort befinden sich auch Beispiele.
Die Meldung des Validators ist also völlig korrekt, das Dokument ist fehlerhaft. Wenn es hier um http://www.energiemessen.de/ geht, was ja stark anzunehmen ist, sehe ich den Sinn dieses Scripts allerdings auch gar nicht. Warum schreibst du die frameset- und frame-Elemente nicht gleich in das Dokument? Diese JavaScript-Spielerei sperrt nur unnötig Besucher aus und hat so wie sie derzeit genutzt wird nichtmal den kleinen Vorteil, dass man dadurch einen auf die direkte Unterseitze verweisenden URI aus der Adressleiste als Lesezeichen setzen oder kopieren und weitergeben könnte. Dort steht ja momentan eh immer das gleiche, sodass man frameset-typisch nur auf die Homepage gelangt. Auch kann man so unter dem Domainname fremde Inhalte anzeigen lassen, du erinnerst dich vielleicht an die Lücke mit der auf bundesregierung.de, die auch durch die Presse ging: http://www.heise.de/newsticker/meldung/77664 - Dies ist hier ebenfalls (sogar auf viel einfachere Weise) möglich: http://www.energiemessen.de/?http://de.wikipedia.org/wiki/Cross-Site_Scripting - Auch Scriptcode kann man so im Kontext der Seite ausführen lassen: http://www.energiemessen.de/?javascript:alert('foo'); Von dem aktuellen Konzept ist also dringend abzuraten.
Am sinnvollsten wäre natürlich der Verzicht auf Frames.
|
|
| 04.12.2006 21:03:02 |
|
mpa
Mitglied
Registriert: 04.12.2006
Beiträge: 2
|
|
Vielen Dank für die Hilfe! Ich bin auch deiner Meinung. Das Layout von der Seite wird demnächst komplett auf php umgestellt. Gruß, mpa
|
|
| 05.12.2006 09:02:48 |
|
Wechsel zu
Die letzten Beiträge aus diesen Forum
|
|