geht, geht nicht, geht, geht nicht
breaker
- browser
hallo ihr selfhtmler
ich hab schon seit geraumer zeit ein grundlegendes mit verschiedenen browsern. es handelt sich um folgende seite: www.phunkey.de, die bei ie6 und netscape7 wunderbar angezeigt wird, bei den vorangegangenen versionen aber nicht bzw. falsch (bei ie5 funktioniert der erste link nicht bei ns6 ist alles verschoben), warum kommen dieser browser entgegen den standards nicht mit frames aus (ich denk mal daran liegt das)? bei opera bekomm ich zu allem überfluß ne völlig leere seite- was soll den das?
bitte helft mir, ich komm einfach nicht drauf bzw. mir fallen keine stichworte mehr ein, nach den ich im archiv suchen könnte.
ich laß mich ja gern belehren, aber so kann das nicht weitergehen! (frames sind auf der seite im übrigen essentiell, das geht nicht anders)
vielen dank an alle, die mir helfen wollen und können.
ein euch sehr verbundener breaker.
Hallo,
Frames werden von vielen Forumsteilnehmern sehr skeptisch betrachtet, von Browsern ja offenbar auch.
Du könntest mal alle deine Seiten, die Probleme verursachen validieren: http://validator.w3.org/. Das wirkt manchmal Wunder.
Heiner
hi heiner
den validator hab ich auch schon mal verwendet, aber alles was der schafft ist, noch mehr zu verwirren. eine andere idee diesbezüglich hast du aber nicht, oder? und wenn nicht mit frames, wie wäre den vergleichbares ohne dieser frames erreichbar?
ciao, breaker.
Was verwirrt Dich denn genau? Vielleicht können wir dein Problem so lösen. Es macht nämlich Sinn die Seite erstmal valide zu machen und dann hinterher Schritt für Schritt neue Elemente hinzuzufügen, sonst schleppst Du Deine invalide Version von Version zu Version. Kannst ja mal die Dich verwirrenden Validator-Angaben rauskopieren. Dann kann ich sie Dir gerne erklären.
Heiner
danke für deine hartnäckige hilfe, also paß auf- hier erst mal die quelle:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>frameset</title>
<script language="JavaScript" type="text/javascript">
<!--
function frames(){if (navigator.appName!="Netscape"){
var datei="<frameset rows="*,1,1,1" border="0" frameborder="0" framespacing="0">\n"+
" <frame src="index2.htm" name="haupt" noresize></frame>\n"+
" <frame src="leerbody.htm" name="mitte"></frame>\n"+
" <frame src="preloadpics.htm" name="unten"></frame>\n"+
" <frame src="leerbody.htm" name="ganzunten"></frame>\n"+
"</frameset>";
document.write(datei);
document.close(); }
else{ document.location.href="index2.htm"; }
}
//-->
</script>
</head>
<script language="JavaScript" type="text/javascript">
<!--
frames();
//-->
</script>
<body bgcolor="black" topmargin="0" leftmargin="0">
</body>
</html>
der validator sagt mir dazu folgendes:
1.DOCTYPE Override in effect! Any DOCTYPE Declaration in the document has been suppressed and the DOCTYPE for «HTML 4.01 Transitional» inserted instead. The document will not be Valid until you alter the source file to reflect this new DOCTYPE.
2.Line 11, column 97: end tag for element "FRAME" which is not open (explain...).
...htm" name="haupt" noresize></frame>\n"+
und
3.Line 30, column 32: there is no attribute "TOPMARGIN" (explain...).
<body bgcolor="black" topmargin="0" leftmargin="0">
für mich ist doch schon verwirrend, da ich angenommen habe alles dem standard konform zu machen, aber wo es keine standardisierung gibt, wem soll man es dann recht machen?
wenn du das besser verstehst, als ich dann zeig mir doch mal meine fehler.
danke und ciao, breaker.
Hallo.
der validator sagt mir dazu folgendes:
1.DOCTYPE Override in effect! Any DOCTYPE Declaration in the document has been suppressed and the DOCTYPE for «HTML 4.01 Transitional» inserted instead. The document will not be Valid until you alter the source file to reflect this new DOCTYPE.
Dann könntest du ihm einen zusätzlichen Doctype angeboten haben, der dem innerhalb der Datei angegebenen widerspricht.
2.Line 11, column 97: end tag for element "FRAME" which is not open (explain...).
...htm" name="haupt" noresize></frame>\n"+
Warum verweist du eigentlich nicht auf eine einzelne Datei, die das Frameset bereits enthält?
und
3.Line 30, column 32: there is no attribute "TOPMARGIN" (explain...).
<body bgcolor="black" topmargin="0" leftmargin="0">
Unter http://selfhtml.teamone.de/html/dateiweit/seitenraender.htm#definieren findest du die Erklärung bereits im ersten Absatz.
für mich ist doch schon verwirrend, da ich angenommen habe alles dem standard konform zu machen, aber wo es keine standardisierung gibt, wem soll man es dann recht machen?
Im Zweifelsfall dem W3C, da sich hiernach auch die Browser-Hersteller (am ehesten) richten. Im Übrigen ist deine Annahme über die Standardkonformität schlicht falsch -- und genau das wollte dir der Validator aufzeigen.
wenn du das besser verstehst, als ich dann zeig mir doch mal meine fehler.
Ich hoffe, dienlich gewesen zu sein.
MfG, at
Hallo,
den validator hab ich auch schon mal verwendet, aber alles was der schafft ist, noch mehr zu verwirren.
Solltest du aber unbedingt noch mal tun.
eine andere idee diesbezüglich hast du aber nicht, oder?
So wie ich das sehe, funktioniert dein document.write(datei) nicht. Da sich der Opera nicht als Netscape ausgibt, versucht er irgendwie, das in der Funktion frame() definierte Frameset aufzurufen. Den Sinn der Übung sehe ich allerdings nicht so recht, zumal man bei ausgeschaltetem JS deine Seite gar nicht benutzen kann.
und wenn nicht mit frames, wie wäre den vergleichbares ohne dieser frames erreichbar?
Was genau bezweckst du denn mit diesen vorgeschalteten JS-Seiten?
Viele Grüße
Torsten
hi torsten,
ich bin wohl etwas blauäugig an die sache herangegangen, aber um js komme ich auch weiteren verlauf der seite nicht herum, da ich kein php zu verfügung habe und mich so mit js-erstellten html seiten durchwurschteln muß, um nicht für jedes neue hochgeladene bild ne neue html-datei zu erstellen.
Was genau bezweckst du denn mit diesen vorgeschalteten JS-Seiten?
außerdem, ohne php, wenn ich nun auch noch auf frames und (!) JS verzichten muß was hab ich den dann noch - nur noch blankes html?
wozu gibts denn das, wenn mans eh nicht benutzen kann oder soll?
ciao, breaker.
Hallo,
ich bin wohl etwas blauäugig an die sache herangegangen, aber um js komme ich auch weiteren verlauf der seite nicht herum, da ich kein php zu verfügung habe und mich so mit js-erstellten html seiten durchwurschteln muß, um nicht für jedes neue hochgeladene bild ne neue html-datei zu erstellen.
Der Einsatz von JS ist ganz allein deine Entscheidung, die ich als Außenstehender allerdings nur dann akzeptiere, wenn du mittels des noscript-Tags Alternativen anbietest.
außerdem, ohne php, wenn ich nun auch noch auf frames und (!) JS verzichten muß was hab ich den dann noch - nur noch blankes html?
Ja, das ist zumindest für deine zwei vorgeschalteten Seiten völlig ausreichend. Frames und JS bedeutet in diesem Fall, mit Kanonen auf Spatzen zu schießen. Wie du dein Dilemma bzgl. der Startseiten lösen könntest, findest du z.B. hier [pref:t=60473&m=340094], eine Browserweiche sehe ich hier als unnötig an.
wozu gibts denn das, wenn mans eh nicht benutzen kann oder soll?
Niemand verbietet dir die Benutzung von Frames oder JS, du solltest es nur maßvoll und unter Anbieten alternativer Inhalte (noscript- und noframes-Tag) einsetzen.
Viele Grüße
Torsten
JavaScript macht die Seiten schöner, bunter, blinkender. Aber man sollte die Seite immer noch halbwegs ohne JavaScript funktionieren lassen.
Beispielsweise eignet sich JavaScript, um Aufklappfenster aufklappen zu lassen. Ohne JavaScript sollten diese immer noch funktionieren, auch wenn sie dann vielleicht mit Adresszeile o.ä. angezeigt werden, also nicht ganz so komfortabel oder "schön" sind.
Menüs lassen sich mit tollen Bildwechseleffekten ausstatten. Deswegen sollten die Links aber auch ohne JavaScript funktionieren, was offenbar nicht allen gelingt.
Zum Aufbau kompletter Seiten sollte man JavaScript hingegen nicht verwenden. Wenn Dein Server nicht PHP-tauglich ist, solltest Du eben umrüsten oder eine html-Lösung favorisieren.
Heiner
hi,
ich bin wohl etwas blauäugig an die sache herangegangen, aber um js komme ich auch weiteren verlauf der seite nicht herum, da ich kein php zu verfügung habe und mich so mit js-erstellten html seiten durchwurschteln muß, um nicht für jedes neue hochgeladene bild ne neue html-datei zu erstellen.
solltest du aber - viel aufwand ist es nicht, und wird wesentlich zuverlässiger funktionieren, als dein bisheriges javascript-gedöns.
btw: an server mit php-unterstützung soll ja ranzukommen sein, hab ich gehört - wenn man was ordentlich(!) online stellen will, sollte man sich evtl. mal von der "muss alles kostenlos sein"-mentalität verabschieden.
außerdem, ohne php, wenn ich nun auch noch auf frames und (!) JS verzichten muß was hab ich den dann noch - nur noch blankes html?
wozu gibts denn das, wenn mans eh nicht benutzen kann oder soll?
sowohl frames als auch javascript sollte man a) korrekt und b) sinnvoll einsetzen.
ich sehe bei deiner bisherigen umsetzung weder a) noch b) erfüllt.
gruss,
wahsaga
Hallo.
den validator hab ich auch schon mal verwendet, aber alles was der schafft ist, noch mehr zu verwirren. eine andere idee diesbezüglich hast du aber nicht, oder? und wenn nicht mit frames, wie wäre den vergleichbares ohne dieser frames erreichbar?
Ich sehe eine schwarze Seite. Hierfür hättest du jeder JavaScript, noch Frames verwenden müssen.
MfG, at
Was iss'n das für 'ne Verarsche !?
Wo hast'n das her !?
function frames(){if (navigator.appName!="Netscape"){
var datei="<frameset rows="*,1,1,1" border="0" frameborder="0" framespacing="0">\n"+
" <frame src="index2.htm" name="haupt" noresize></frame>\n"+
" <frame src="leerbody.htm" name="mitte"></frame>\n"+
" <frame src="preloadpics.htm" name="unten"></frame>\n"+
" <frame src="leerbody.htm" name="ganzunten"></frame>\n"+
"</frameset>";
document.write(datei);
document.close(); }
Hier wird für alle Browser, die nicht Netscape heißen mittels Javascript ein Frame gebastelt !!
else{ document.location.href="index2.htm"; }}
Hier wird für die Netscape Browser eine Seite ohne Frames geöffnet !!
Nun wunderst du dich, warum die Netscapes keine Frames anzeigen !?
Wirf das ganze Javascript raus, dann klappt's !!
?????????!!!!!!!!!! :o(((