Frameset nachladen. Big Problem
Marcus
- javascript
Hallo,
ich stehe irgendwie gerade auf der Leitung und würde mich freuen, so man mir helfen könnte:
Folgendes Problem: Meine Seite besteht aus zwei verschachtelten Frames. Links Hauptnavigation (Frame-Name "navi"). Dann ein zweites Frameset ("topframe" & "content").
Folgendes Javascript habe ich in die Inhaltseite integriert und es funktioniert auch bestens. Es sieht so aus:
<script language="JavaScript">
<!--
function FramesetTest() {
if (top.frames.length==0) {
Address="/index.html?/bewerbungsunterlagen.html";
if(document.images) top.location.replace(Address);
else top.location.href=Address;
}
}
//-->
</script>
<body leftmargin="15" topmargin="20" onLoad="FramesetTest()">
In den beiden Navigationsframes steht folgendes JavaScript:
<script language="JavaScript">
<!--
function Jump() {
if (top.location.search!="") {
var Size=top.location.search.length;
var Address=top.location.search.substring(1,Size);
if(document.images)
top.content.location.replace(Address);
else top.content.location.href=Address;
}
}
//-->
</script>
<body leftmargin="0" topmargin="0" onLoad="Jump()">
PROB: Ruft man die beiden Navigationsframes einzeln und für sich auf, wird das Frameset dummerweise nicht nachgeladen.
WAS MACHE ICH BLOSS FALSCH??
AAAAARRRRRRRGGGGGGGGGGHHHHHHHHHHHHHHH
Hi,
Folgendes Problem: Meine Seite besteht aus zwei verschachtelten Frames.
das ist in der Tat ein Problem; die Lösung liegt aber auf der Hand.
<script language="JavaScript">
ERROR: Required attribute "type" missing.
Diesen Hinweis wirst Du im Archiv pervers oft finden. Da Du den Fehler trotzdem nicht korrigiert hast, muss ich davon ausgehen, dass Du gar nicht erst gesucht hast. Warum verhälst Du Dich uns gegenüber derart unhöflich? Haben wir Dir etwas getan?
Address="/index.html?/bewerbungsunterlagen.html";
Der Slash ist im Searchpart einer URL nicht erlaubt.
if(document.images) top.location.replace(Address);
Das ist zwar eine löbliche Abfrage, aber ich verstehe den Zusammenhang zwischen document.images und top.location.replace nicht.
In den beiden Navigationsframes steht folgendes JavaScript:
WAS MACHE ICH BLOSS FALSCH??
Punkt 1: Du schreist und multipelsatzzeichensetzt.
Punkt 2: In den Navigationsframes sehe ich nichts, was irgendwas mit Frames zu tun hätte. Wieso sollten diese also beeinflusst werden?
Cheatah
Sorry,
bin ein Neuling und wollte nicht unnötig mit offenbar altbekannten, immer wiederkehrenden Fragen nerven. Leider fand ich im Archiv nirgend die Antwort auf meine vermaledeite Frage...
Leider fand ich im Archiv nirgend die Antwort auf meine vermaledeite Frage...
dann schau' doch mal hier nach: http://forum.de.selfhtml.org/archiv/2003/7/51134/#m280762
Dein Problem ist - so wie ich das hier sehe, daß Du den query-Sring an die Frameset-Seite index.html übergibst, aber diesen nicht auch dort auswertest...
Gruß
Ingo
Hi,
<script language="JavaScript">
ERROR: Required attribute "type" missing.
Angemessen waere hoechstens "Warnung". Bislang verstehen noch alle Browser dieses Attribut, es ist mir noch kein Fall untergekommen, wo es einen "ERROR" verursacht haette!
if(document.images) top.location.replace(Address);
Das ist zwar eine löbliche Abfrage, aber ich verstehe den Zusammenhang zwischen document.images und top.location.replace nicht.
Im Zusammenhang besser erkennbar
function FramesetTest() {
if (top.frames.length==0) {
Address="/index.html?/bewerbungsunterlagen.html";
if(document.images) top.location.replace(Address);
else top.location.href=Address;
}
}
In etwa ist "replace" all denen bekannt, die auch "document.images" kennen. "href" ist afaik schon aelter. Heutzutage ist diese Abfrage IMHO ueberfluessig.
Gruesse Joachim
Hi,
<script language="JavaScript">
ERROR: Required attribute "type" missing.
Angemessen waere hoechstens "Warnung".
gehe zum http://validator.w3.org/. Gehe direkt dorthin. Gehe nicht über Los, ziehe keine 4000 Bugs ein. Und schau Dir dort an, was angemessen ist - nämlich Attribute, die als "required" definiert wurden, auch als "required" anzusehen.
Bislang verstehen noch alle Browser dieses Attribut,
Erstens ist das (immer noch) nicht von Belang, wer was versteht; zweitens: Wieso beschränkst Du Dich auf Browser?
es ist mir noch kein Fall untergekommen, wo es einen "ERROR" verursacht haette!
Die hohe Fehlertoleranz vieler Programme ist ein nicht zu vernachlässigendes Problem. Siehe Archiv.
if(document.images) top.location.replace(Address);
Das ist zwar eine löbliche Abfrage, aber ich verstehe den Zusammenhang zwischen document.images und top.location.replace nicht.
In etwa ist "replace" all denen bekannt, die auch "document.images" kennen.
Das ist mir schon klar, aber wieso wird hier auf Indizien gebaut, anstatt einfach das abzufragen, was benutzt wird?
Heutzutage ist diese Abfrage IMHO ueberfluessig.
*Keinesfalls.*
Cheatah
Hi,
Und schau Dir dort an, was angemessen ist - nämlich Attribute, die als "required" definiert wurden, auch als "required" anzusehen.
Ich habe nicht, nie, nirgendwo bestritten, dass "type" required ist.
ERROR hingegen ist _Unsinn_. Ein Error unterbricht den Programmablauf und fuehrt zu Fehlern. Das ist hier _nicht_ der Fall. Angemessen ist also die Warnung, das "language" ausstirbt und durch "type" ersetzt wird. Alles ander ist Prinzipienreiterei.
Die hohe Fehlertoleranz vieler Programme ist ein nicht zu vernachlässigendes Problem. Siehe Archiv.
Das hat nix mit Fehlertoleranz zu tun, hoechstens mit Kontinuitaet.
Schliesslich war "language" ueber Jahre legal. Bei NC 4x steuert es die Version, was Unterschieden in der Javascript-Interpretation bedingt. Es wird also moeglicherweise immer noch benoetigt.
Das ist mir schon klar, aber wieso wird hier auf Indizien gebaut, anstatt einfach das abzufragen, was benutzt wird?
Weil die Abfrage nach replace bei einigen aelteren Browsern (IE am Mac) zu Fehlern fuehrt.
Heutzutage ist diese Abfrage IMHO ueberfluessig.
*Keinesfalls.*
nenne mir einen Browser, der zwar Frames, aber nicht replace kann.
Gruesse Joachim
Hi,
Ich habe nicht, nie, nirgendwo bestritten, dass "type" required ist.
ERROR hingegen ist _Unsinn_.
diese beiden Aussagen widersprechen einander.
Ein Error unterbricht den Programmablauf und fuehrt zu Fehlern. Das ist hier _nicht_ der Fall.
Dass es in den von Dir getesteten Browsern trotzdem funktioniert, liegt an deren Fehlertoleranz. Ich wiederhole das Wort: *Fehler*toleranz.
Angemessen ist also die Warnung,
Schaue Dir bitte die Ausgabe des Validators bei dem fehlenden Attribut an. Dann könne wir weiterreden.
Schliesslich war "language" ueber Jahre legal.
Das ist es auch weiterhin, was nichts an der Tatsache ändert, dass der type required ist. Die beiden Attribute ersetzen sich nicht gegenseitig, ein "entweder oder" ist absurd.
Bei NC 4x steuert es die Version, was Unterschieden in der Javascript-Interpretation bedingt. Es wird also moeglicherweise immer noch benoetigt.
Deswegen ist das language-Attribut optional. Es ist _nicht_ deprecated.
nenne mir einen Browser, der zwar Frames, aber nicht replace kann.
lynx. Die richtige Abfrage für die Verwendung von Methode X ist aber immer noch "if (methodeX)", nicht "if (objektYWelchesUeblicherweiseBekanntIstWennMethodeXBekanntIst)".
Cheatah
Hi,
Schaue Dir bitte die Ausgabe des Validators bei dem fehlenden Attribut an. Dann könne wir weiterreden.
Der Validator ist eine Hilfe, mehr nicht. Wenns z. B. nach dem Css Validator geht, muesste ich mein clipping kommaseparieren - nur wuerden leider 85% der Clients eine falsche Darstellung bekommen.
Fuer NC 4x Benutzer werde ich also auch weiterhin deprecated tags wie "marginwidth" benutzen, denn ich baue fuer die Praxis und nicht fuer den Validator.
Der Validator gibt sicher wertvolle Hinweise zur Fehlersuche und Seitenoptimierung. Bei der Beantwortung von Fragen halte ich das Zitieren dieser Meldungen aber nur dann fuer sinnvoll, wenn es im direkten Zusammenhang mit dem Fehler steht. Andernfalls entsteht der Eindruck, dass z. B. das fehlende "type" fuer Javascript-Probleme verantwortlich sei - mit denen es aber nichts zu tun hat.
nenne mir einen Browser, der zwar Frames, aber nicht replace kann.
lynx.
Hajo, seit wann kann Lynx Javascript?
Gruesse Joachim
Hi,
Schaue Dir bitte die Ausgabe des Validators bei dem fehlenden Attribut an. Dann könne wir weiterreden.
Der Validator ist eine Hilfe, mehr nicht.
nein, er ist ein Prüfmechanismus, ob etwas formal korrekt ist - mehr nicht.
Der Validator gibt sicher wertvolle Hinweise zur Fehlersuche und Seitenoptimierung. Bei der Beantwortung von Fragen halte ich das Zitieren dieser Meldungen aber nur dann fuer sinnvoll, wenn es im direkten Zusammenhang mit dem Fehler steht. Andernfalls entsteht der Eindruck, dass z. B. das fehlende "type" fuer Javascript-Probleme verantwortlich sei - mit denen es aber nichts zu tun hat.
Tja, ob dieser Eindruck nun entsteht oder nicht - es ist und bleibt ein Fehler, das type-Attribut nicht anzugeben. Ich könnte Deinen Einwand verstehen, wenn seine Angabe irgendwo zu Problemen führen würde; derartiges ist mir aber nicht bekannt.
nenne mir einen Browser, der zwar Frames, aber nicht replace kann.
lynx.
Hajo, seit wann kann Lynx Javascript?
Kann er nicht, also auch kein replace. Ich habe übrigens auch nicht verstanden, was in dem Zusammenhang - und im Zusammenhang mit der kritisierten Prüfung - Frames für eine Bedeutung haben sollen.
Cheatah
Hi,
Bei NC 4x steuert es die Version, was Unterschieden in der Javascript-Interpretation bedingt. Es wird also moeglicherweise immer noch benoetigt.
Deswegen ist das language-Attribut optional. Es ist _nicht_ deprecated.
Auszug aus dem Index der Attribute für HTML 4.01
Name Related Elements Type Default Depr. DTD Comment
language SCRIPT CDATA #IMPLIED D L predefined script language name
Das D unter Depr. sagt, daß language ist sehr wohl deprecated ist.
Und in den strict-Varianten von HTML 4.01 bzw. XHTML 1.0 ist es auch nicht enthalten (das sagt das L für Loose unter DTD).
cu,
Andreas