Frameset erzwingen
Gumble
- javascript
Tachchen,
ich bin an folgendem Problem gescheitert: Ich wollte ein JScript einbauen, das automatisch ein Frameset nachlädt, wenn die Content-Seite einzeln aufgerufen wird.
Mit der hier gefundenen Anleitung von SelfHTML (http://selfaktuell.teamone.de/artikel/javascript/dyn-frames/#a2) war das auch eigentlich gar kein Problem - jetzt kommt das große ABER: Ich verwende ein Frameset IM Frameset, brauche also quasi eine doppelte, nachgeschaltete Abfrage, hierarchisch geordnet. Ich hab es aber leider immer nur entweder-oder geschafft :(
Hat vielleicht schon mal jemand so was versucht oder sogar geschafft und kann mir Tipps geben? Das wär echt supernett!
Danke + schönen Gruß!
Hallo Gumble...
auch wenn meine Antwort hier jetzt nicht sonderlich konstruktiv ausfällt, aber: Hast Du schon mal darüber nachgedacht das Frameset dementsprechend zu ändern, oder evtl. GANZ auf Frames zu verzichten, was ja auch gewisse Vorteile hat?
Ich kenn' mich leider nicht mit JS aus, weil ich versuche es soweit es geht zu vermeiden, da es immerwieder leute gibt die aus versch. Gründen JavaScript nicht aktiviert haben. EIn durchdachtes Konzept macht JS ohnehin sogutwie überflüssig. :-)
mfG Markus
Hallo Markus,
ich finde Frames eigentlich ganz praktisch, weil ich Änderungen nur noch im Contentbereich machen muss und der Rest der Seite nicht angetastet wird. Außerdem finde ich es sehr übersichtlich.
Leider gibt es manche Situationen, die ohne ein Untermenü nicht mehr machbar sind (z.B. eine Picture-Gallery). Und da kommt dann das berüchtigte Frameset im Frameset ins Spiel.
Übrigens komme ich ansonsten auch ganz gut ohne JS aus (habe auch nicht so viel Ahnung davon), meine Site ist trotzdem funktionsfähig - aber ein paar Gimmicks fehlen dann doch ;)
Schönen Gruß, Gumble
Hi,
Leider gibt es manche Situationen, die ohne ein Untermenü nicht mehr machbar sind (z.B. eine Picture-Gallery). Und da kommt dann das berüchtigte Frameset im Frameset ins Spiel.
Und was hindert Dich an der Darstellung des Untermenüs in _einer_ Datei ohne Frameset?
Davon abgesehen: Selbst wenn Du für Deine Kenntnisse Framesets benötigst, sollte es doch wohl möglich sein, alle Frames in einem einzigen Set zu definieren, oder? Dann hättest Du zumindest schonmal ein Problem weniger...
freundliche Grüße
Ingo
Hallo,
Und was hindert Dich an der Darstellung des Untermenüs in _einer_ Datei ohne Frameset?
Nun, das Untermenü ist ja nur eine Datei ;-)
Spaß beiseite: Die Hauptnavigation soll ja auch stehen bleiben, somit brauch ich das übergeordnete Frameset. Und das Untermenü möchte ich gerne auch als Frame haben, damit ich nicht (in diesem Beispiel) für die Ansicht eines mickrigen Fotos in jeder Seite eine ellenlange Picture-Gallery mit Thumbnails einbauen muss.
Davon abgesehen: Selbst wenn Du für Deine Kenntnisse Framesets benötigst, sollte es doch wohl möglich sein, alle Frames in einem einzigen Set zu definieren, oder? Dann hättest Du zumindest schonmal ein Problem weniger...
Das wäre natürlich theoretisch möglich. Praktisch brauch ich aber verschiedene Untermenüs, je nach Rubrik der Hauptseite. Und die kann ich nicht immer alle auf einmal gebrauchen ;-)
Schönen Gruß, Gumble
Hi,
Die Hauptnavigation soll ja auch stehen bleiben, somit brauch ich das übergeordnete Frameset.
Wieso soll die unbedingt stehen bleiben? Und selbst wenn es denn sein muß, gibt es hierzu Lösungen ohne Frameset.
Und das Untermenü möchte ich gerne auch als Frame haben, damit ich nicht (in diesem Beispiel) für die Ansicht eines mickrigen Fotos in jeder Seite eine ellenlange Picture-Gallery mit Thumbnails einbauen muss.
Verstehe ich zwar jetzt nicht ganz, aber was würde Dich z.B. hindern, eine neue Seite für diese Galerie aufzumachen?
Davon abgesehen: Selbst wenn Du für Deine Kenntnisse Framesets benötigst, sollte es doch wohl möglich sein, alle Frames in einem einzigen Set zu definieren, oder? Dann hättest Du zumindest schonmal ein Problem weniger...
Das wäre natürlich theoretisch möglich. Praktisch brauch ich aber verschiedene Untermenüs, je nach Rubrik der Hauptseite. Und die kann ich nicht immer alle auf einmal gebrauchen ;-)
Auch wenn ich immer noch keinen notwendigen Grund dafür sehe, sollte es Dir zumindest möglich sein, hier zumindest für jedes Untermenü _ein_ Frameset zu bauen. Das hätte dann immerhin schonmal den Vorteil, daß man außer auf die Startseite noch direkte Links auf die Untermenüs setzen kann bzw. sich diese zu den Bookmarks hinzufügen lassen.
freundliche Grüße
Ingo
Hallo,
habe gerade genau das gleiche Problem wie Du hinter mir...
Hier meine Lösung wie ich das Problem gelöst habe.
in der Index.html (erstes Frameset) habe ich folgenden Quellcode eingebaut:
im Head Bereich:
<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.center.location.replace(Address);
else top.center.location.href=Address;
}
}
//-->
</script>
im Body Bereich:
<body onLoad="Jump()">
In alle Unterseiten habe ich folgenden Code eingebaut:
Im Head Bereich:
<script language="JavaScript">
<!--
function FramesetTest() {
if (top.frames.length==0) {
Address="../index.html?handel.html";
if(document.images) top.location.replace(Address);
else top.location.href=Address;
}
}
//-->
</script>
Im Body Bereich:
<body onload="FramesetTest();">
Das Problem mit dem 2ten Frameset (wird bei mir im ersten Frameset index.html geladen) habe ich mit folgenden Code gelöst (Den Code im 2ten Frameset einfügen):
im Head Bereich:
<script language="JavaScript">
<!--
if(!parent.rechts) {
location.href="../index2.html?" + location.pathname;
}
//-->
</script>
Dann habe ich eine 2te Index Datei (index2.html) erstellt die genau den gleichen Inhalt wie die erste index.html hat(da wo der erste Frameset geladen wird). Nur das Javascript wird in der 2ten Index Datei geändert mit folgendem:
im Head Bereich:
<script language="JavaScript">
<!--
function checkFramecall() {
var Adressanhang=location.search;
if(Adressanhang)
frames.center.location.href=Adressanhang.substring(1,Adressanhang.length);
}
//-->
</script>
<frameset onLoad="checkFramecall()">
Ich hoffe Du blickst da jetzt durch ;) Also einfach erklärt...alle Unterseiten laden mit dem Javascript die index.html nach wenn Sie nicht im Frameset sind.
Das 2te Frameset lädt aber die index2.html nach wenn das erste Frameset fehlt (die ja vom Inhalt genauso ist wie die index.html) und integriert sich wieder in das erste Frameset (bei mir der Rahmen).
Also hoffe du kriegst das hin...habe lange gebraucht und mit den Scripten rumprobiert, aber so funzt das sehr gut.
Viel Spaß
winke
Nage
Ps. Du mußt natürlich noch die Scripte an Deine Seite anpassen...
Tachchen!
habe gerade genau das gleiche Problem wie Du hinter mir...
Hier meine Lösung wie ich das Problem gelöst habe.
Wow! Erstmal danke! Endlich mal ein Forum, wo man auch vernünftige Antworten bekommt.
Ich hoffe Du blickst da jetzt durch ;)
Das hoffe ich auch ;-)
Ich versuch mal, da durchzusteigen und das bei mir einzubauen - kann wohl etwas dauern... Ich werde aber vom Ergebnis berichten.
Also hoffe du kriegst das hin...habe lange gebraucht und mit den Scripten rumprobiert, aber so funzt das sehr gut.
Bin mal gespannt. Ich hoffe nur, dass mich nicht das Gleiche erwartet wie beim letzten Versuch: Da hatte es endlich (wenn auch noch mit Fehlern) beim IE irgendwie halbwegs geklappt - da fiel mir auf, dass Opera den Dienst völlig versagte...
Viel Spaß
Danke ;-)
Ps. Du mußt natürlich noch die Scripte an Deine Seite anpassen...
Achsoooooo, und ich wunder mich schon ;-)))
Besten Dank und viele Grüße!