Validierung mit Frames
Hondo
- html
Hallo,
irgendwie klappt das mit dem Validieren nicht bei folgender Seite:
www.gasthaus-erhardt.de
Fehler wie "element "FRAMESET" undefined" und "there is no attribute "NAME"" verstehe ich nicht. klärt mich jemand auf?
Gruß Andreas
Hi,
irgendwie klappt das mit dem Validieren nicht bei folgender Seite:
www.gasthaus-erhardt.de
Fehler wie "element "FRAMESET" undefined" und "there is no attribute "NAME"" verstehe ich nicht. klärt mich jemand auf?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
Für ein Frameset mußt Du natürlich den Frameset-Doctype benutzen.
cu,
Andreas
Hallo Hondo,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
Für ein Frameset mußt Du natürlich den Frameset-Doctype benutzen.
Genau. Die Erklärung dazu findest du hier: http://de.selfhtml.org/html/frames/definieren.htm#grundgeruest
Gruss aus Luzern,
Daniel
Hallo,
danke für die Antworten.
Da ich von einem Frame dessen höhe dynamisch mit Javacript einstelle, bekomme ich nun den Fehler:
"document type does not allow element "SCRIPT" here"
Mit Javascript scheit der Validator seine Probleme zu haben.
überall wo ich ein alert() stehen habe, meldet er:
"encoding problem on this line, not shown"
Wie kann ich dennoch das Dokument Validieren?
Gruß Andreas
Hi,
Da ich von einem Frame dessen höhe dynamisch mit Javacript einstelle, bekomme ich nun den Fehler:
"document type does not allow element "SCRIPT" here"
Dann steht das Script *offensichtlich* an einer Stelle, wo es nicht erlaubt ist!
Setze es also an eine andere Stelle! Die Wahrscheinlichkeit ist in diesem Fall *hoch*, daß nicht alle Browser dieses Script ausführen werden.
Mit Javascript scheit der Validator seine Probleme zu haben.
Es scheint aber auch nur so zu sein.
Wie kann ich dennoch das Dokument Validieren?
Indem Du die Fehler behebst.
Gruß, Cybaer
Hallo,
danke für die Antworten, aber sie bringen mich nicht wirklich weiter.
Klar, wenn man es richtig macht funktioniert es, aber dazu muss man erst wissen wie man es richtig macht.
Hier nochmal mein Code der index.htm. Wäre nett, wenn ihr mir den entscheidenden Hinweis geben könntet.
Gruß Andreas
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<TITLE>Restaurant Erhardt - Offenburg</TITLE>
<script src="script/screenres.js" language="JavaScript" type="text/javascript"></script>
</HEAD>
<script language="JavaScript" type="text/javascript">
if(res=="1"){document.write('<FRAMESET border="0" frameSpacing="0" rows="250,250,*" frameBorder="0">');}
if(res=="2"){document.write('<FRAMESET border="0" frameSpacing="0" rows="150,250,*" frameBorder="0">');}
</script>
<FRAME name="top" src="top.htm" noResize scrolling="no">
<FRAME name="main" src="main.php" noResize scrolling="no">
<FRAME name="navi" src="navigation.php" noResize scrolling="no">
<noframes>
<script language="JavaScript" type="text/javascript">
parent.location.href = "reservierung.php";
</script>
</noframes>
</FRAMESET>
</HTML>
Hi,
Hier nochmal mein Code der index.htm. Wäre nett, wenn ihr mir den entscheidenden Hinweis geben könntet.
Mach eine normles Frameset (ohne JS), und ändere, wenn es schon sein muß (es muß, bei durchdachtem Webdesign nicht sein) die Framegröße nachträglich (z.B. mit einem Script, das innerhalb eines Frames läuft).
Und bei der Gelegenheit entsorge am Besten auch noch das ziemlich sinnfreie JS im NOFRAMES-Bereich. Von den üblichen Browsern unterstützt nur Opera die Kombi "keine Frames/aktiviertes Scripting". NOFRAMES ist in der Anwendung in erster Linie für Behinderte und Suchmaschinen sinnvoll. Erstere haben mitunter JS, letztere nie.
Gruß, Cybaer
Hallo,
danke für die Antwort,
Gruß Andreas
Hallo
Dann steht das Script *offensichtlich* an einer Stelle, wo es nicht erlaubt ist!
habe das Script das ich ausgelagert hatte wieder intern plaziert, und da hat es funktioniert.
Thema erledigt.
Gruß Andreas
Hallo,
zu früh gefreut.
Es wird zwar korrekt angezeigt, auch im Firefox, aber der W3C-Validator motzt, wegen dem Script im Frameset.
Also was tun? Die Höhe des oberen Frames muss eben unterschiedlich sein.
Also so lassen oder sich von Frames verabschieden oder was?
Andreas
Hi,
Also so lassen oder sich von Frames verabschieden oder was?
Schon angesichts des offensichtlichen Umstands, daß Du noch einiges an Erfahrung beim Webdesign, Frames und JavaScript sammeln mußt, kann man nur zu letzterem raten. So wie es jetzt ist, ist es jedenfalls Murks. Das mag dein Auftraggeber (noch) nicht merken, aber wenn es ihm jemand sollte (oder falls er mal selber drüber stolpert), dürfte er nicht gut auf Dich zu sprechen sein ...
Gruß, Cybaer
Hallo,
aber scheinbar wisst ihr wie es richtig geht.
Also wiso sagt ihr mir nicht einfach was falsch ist?
Habe probiert alles über das Script zu laden, aber da bringt er auch den gleichen Fehler "end tag for element "FRAMESET" which is not open" obwohl im IE und FF die Seite korrekt angezeigt wird.
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<TITLE>Restaurant Erhardt - Offenburg</TITLE>
<script language="JavaScript" type="text/javascript">
function frames() {
var screenres, res;
screenres=screen.width;
if(screenres=="1024") res="2";
else if(screenres=="800") res="2";
else if(screenres=="1152") res="1";
else if(screenres=="1280") res="1";
else res="2";
if(res=="1"){document.write('<FRAMESET border="0" frameSpacing="0" rows="250,250,*" frameBorder="0">');}
if(res=="2"){document.write('<FRAMESET border="0" frameSpacing="0" rows="150,250,*" frameBorder="0">');}
document.write('<FRAME name="top" src="top.htm" noResize scrolling="no"><FRAME name="main" src="main.php" noResize scrolling="no"><FRAME name="navi" src="navigation.php" noResize scrolling="no"></FRAMESET>');
}
</script>
</HEAD>
<body onload="frames()">
</body>
</HTML>
hi,
aber scheinbar wisst ihr wie es richtig geht.
woraus versuchst du zu schließen, dass irgend jemand hier das dynamische rumgefummel mit frameset-größen in irgendeiner nur erdenklichen weise als "richtig" erachten könnte?
Also wiso sagt ihr mir nicht einfach was falsch ist?
warum berücksichtigst du nicht beispielsweise Cybaers hinweis, dass das _konzept_ schon ziemlicher murks ist?
(und dabei ist er noch einer der jenigen, die JS hier am aufgeschlossensten gegenüberstehen ...)
Habe probiert alles über das Script zu laden, aber da bringt er auch den gleichen Fehler "end tag for element "FRAMESET" which is not open" obwohl im IE und FF die Seite korrekt angezeigt wird.
document.write('<FRAME name="top" src="top.htm" noResize scrolling="no"><FRAME name="main" src="main.php" noResize scrolling="no"><FRAME name="navi" src="navigation.php" noResize scrolling="no"></FRAMESET>');
}
das auftauchen der zeichenkette </ beendet jeden <script>-bereich implizit - also muss es als </ kodiert werden.
das könnte hier eventuell helfen, den validator zu beruhigen - auf die massive schwäche des konzeptes hat es aber ganz sicher auch keinen positiven einfluss.
ohne javascript beispielsweise bekommt ein besucher deiner seite exakt _gar keinen_ inhalt, genauso wie suchmaschinen. von deinem vorgehen kann nur _dringends_ abgeraten werden.
gruß,
wahsaga
Hallo,
danke euch für die Antworten.
Ich denke schon dass es ein Unterschied ist zu sagen es ist Murks, und sagen wo der Murks ist.
Dass es Murks ist/war, ist mir nun für mich einleuchtend.
Gruß Andreas
Hi,
Ich denke schon dass es ein Unterschied ist zu sagen es ist Murks, und sagen wo der Murks ist.
Es gibt im Web einige Listen der Art "Todsünden eines Webdesigners" (leider keinen URL parat). Dort findest du einiges.
Dass es Murks ist/war, ist mir nun für mich einleuchtend.
Zusammenfassend:
Gruß, Cybaer
Hi,
(und dabei ist er noch einer der jenigen, die JS hier am aufgeschlossensten gegenüberstehen ...)
Und Frames auch noch ... =;-)
Gruß, Cybaer
Hi,
</HEAD>
<body onload="frames()">
Eine Frameset-Datei enthält Frame-Definitionen und hierin ggfls. ein noscript-Element, welches dann einen body beinhalten darf. Dies alles fehlt hier - und ohne Javascript bleibt die Seite leer.
freundliche Grüße
Ingo
Hi,
Eine Frameset-Datei enthält Frame-Definitionen und hierin ggfls. ein noscript-Element
Vertipper: NOFRAMES
Gruß, Cybaer
Hi,
Hi,
Eine Frameset-Datei enthält Frame-Definitionen und hierin ggfls. ein noscript-Element
Vertipper: NOFRAMES
oops... Danke für die Korrektur. War eher 'ne Fehlleistung, da ich gerade an einem Script gebastelt hatte.
freundliche Grüße
Ingo
Hi,
aber scheinbar wisst ihr wie es richtig geht.
Natürlich. Wenn man mit Frames und JavaScript arbeitet, seit es das gibt, dann hat man i.d.R. auch zwangsläufig einiges an Wissen darüber.
Also wiso sagt ihr mir nicht einfach was falsch ist?
Es tut mir leid so hart zu klingen - und es ist auch eigentlich nicht meine Art -, aber hier ist leider so ziemlich alles falsch! Vom großen Ganzen angefangen bis runter in die Details (vieles kann man hier im Archiv nachlesen).
Das alles zu korrigieren, wäre einfach zuviel Aufwand - zumal wohl schon der Grundansatz verfehlt ist.
Das soll nicht arrogant klingen - es ist noch nie ein Meister vom Himmel gefallen -, aber es ist IMHO sinnvoller, den Tatsachen ins Auge zu schauen. Einstweilen würde ich deswegen eine einfachere Technik als Frames, sowie einen (zumindest weitgehenden) Verzicht auf JavaScript empfehlen. Gute Sites kommen absolut ohne aus.
Wenn Du eine gute Site gemacht hast, sollten schwierigere Dinge wie Frames oder JavaScript ggf. wieder ein Thema sein.
Andernfalls machst Du Dir, deinem Auftraggeber (nebst seinen Besuchern) und somit letztlich erneut Dir keine Freude ...
Gruß, Cybaer
screenres=screen.width;
if(screenres=="1024") res="2";
else if(screenres=="800") res="2";
else if(screenres=="1152") res="1";
else if(screenres=="1280") res="1";
else res="2";
Was soll das bewirken?
Du gehst von der Vorstellung aus, das die Größe des Monitors ein Information ist, die das Design deines Framesets beeinflussen könnte. Das ist aber absoluter Irrglauben. Die Größe eines Borwserfensters hängt nicht von der Auflösung des Monitors ab sondern von vielen anderen Faktoren darunter einige auf die du keinerlei einfluss hast und auch nciht rausfinden kannst. z.b. haben viele User mit einem grossen Monitor ihren Browser nicht maximiert, die Breite, die üblicherweise angenehm zu lesen ist sind ca. 50-60 Zeichen pro Zeile und so werden viele das Fenster entsprechenden aufziehen.
if(res=="1"){document.write('<FRAMESET border="0" frameSpacing="0" rows="250,250,*" frameBorder="0">');}
if(res=="2"){document.write('<FRAMESET border="0" frameSpacing="0" rows="150,250,*" frameBorder="0">');}
Wobei es dir aber offensichtlich um die Höhe geht, dann kommt es natürlich darauf an was der Unterschied zwischen 150 und 250 Pixel für eine Rolle spielt.
Sinnvoller wäre hier übrigens eine Prozentangabe z.b.:
<FRAMESET rows="15%,250,*">
Struppi.
Hallo!
irgendwie klappt das mit dem Validieren nicht bei folgender Seite:
www.gasthaus-erhardt.de
Nicht nur irgendwie sondern ganz konkret klappt mit Deiner Seite schon mehr nicht:
Weder im Firefox noch im Konqueror funktioniert außer der Restaurant - Graphik auch nur irgend etwas!
IE-only optimiert? :-(
Grüße
saltun
Deswegen möchte ich ja auch meine Seiten validieren.
Gruß Andreas
Hi,
Deswegen möchte ich ja auch meine Seiten validieren.
Die Validität des Codes gegen eine W3C-DTD ist genausowenig Garant für das Funktionieren der Seite, wie die Nicht-Validität ein Nicht-Funktionieren bedeutet.
In beiden Fällen solltest Du schlicht wissen, was Du tust.
Gruß, Cybaer