Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Inhalt von Frames beim Laden ändern

gelöscht_96523 / 5 Antworten / Baumansicht Nickles
Hallo zusammen,

ich habe ein Problem und finde absolut keine Lösung.

 

[kurze Version]

Ich möchte ein Frameset laden, aber die Originaldateien, die in das Frameset gehören, in diversen Fällen direkt durch andere ersetzen.

Wie geht das?

 

 

 

[lange Version]

Ich habe ein (leider komplexes) Frameset, dass sich durch (fast) die ganze Site durchzieht. Nur einmal brauche ich ein anderes Frameset (Ausnahme), dass auch existiert. Dieses wird per Link und Target "_top" geladen.

Durch "parent.[FRAME].location='datei.html'" kann ich in den verschiedenen Frames andere Dateien laden. Soweit so gut.

 

Nun soll das "Ausnahmeframeset" (bei Klick) wieder verschwinden und durch das "Originalframeset" ersetzt werden. Würde auch mit "_top" gehen, aber dann werden ja die "Defaultinhaltdateien" des Framesets geladen. Je nach Menüpunkt sollen da aber andere Inhalte rein.

Folgendes scheint mir logisch, funktioniert aber nicht bzw. nur teilweise:

 

function ps()
 {
  parent.location='index2.html' (<- Das Frameset)

 

  parent.navi2.location='navi_unten.html';
  parent.navi1.location='navi_40130ps.html';
  parent.content.location='content_40130ps.html';
  parent.rand_content.location='rand.html';
  parent.rand_rechts.location='rand_rechts.html';
  parent.bilder.location='bilder_40130ps.html';
  return false;
 }

 

Es scheint mir so, dass das Script nur bis zur "index2.html" ausgeführt wird, und dann beendet. Gerade die Befehle danach, sollen dann die Inhalte der Frames ändern.

 

Ich hoffe, jemand versteht mein Problem und kann mir helfen.

 

Der Verzweiflung nahe,

Alsion
bei Antwort benachrichtigen
Maxx Stone gelöscht_96523 „Inhalt von Frames beim Laden ändern“
Optionen

Hi Alsion,

ich sehe da mehrer Konflikte bei function ps(). Aber egal. Kurze Version:

Lade Frameset1 mit einem Link folgender Art: href="index2.html?navi_unten+navi_40130ps"
Dann mit der Javascript 1.2 Methode "location.search()" und z.B. substring() die Dateinamen auslesen und die Frames aufrufen ...

Theoretisch ginge es aber auch ein weiteres Frameset zu verschachteln *grusel*

Gruß
Maxx Stone

PS: Ich benutze die search() Methode um sicherzustellen, dass meine Frames auch immer im Frameset geladen werden (if (self.location == top.location) blabla).

bei Antwort benachrichtigen
gelöscht_96523 Maxx Stone „Hi Alsion, ich sehe da mehrer Konflikte bei function ps . Aber egal. Kurze...“
Optionen

Richtig, theoretisch kann ich auch mehrere Framesets verschachteln. Aber mich gruselts dabei genauso wie Dich ;-)
Da ist JavaScript halt angenehmer. Ich werde Deine Lösung mal testen.

Inzwischen habe ich aber eine andere Möglichkeit gefunden. Ein völlig anderer Lösungsansatz: Anstatt das "Extra-Frameset" (welches ich nur einmal brauche) zu laden und nachträglich mit Inhalt zu füllen, ändere ich das "normale" Frameset in der Größe. Das reicht auch und ich kann das "aktuelle" Frameset behalten und muss nur die Inhalte tauschen. Also nicht erst extra das "Extra-Frameset" laden.

Hm, ist etwas schwer auszudrücken, aber im Prinzip funktioniert es nun so wie ich will. Auf dem Mac zwar noch nicht so, aber daran arbeite.

Trotzdem Danke für Deine Mühen und Überlegungen.

Gruß,
Alsion

bei Antwort benachrichtigen
Maxx Stone gelöscht_96523 „Inhalt von Frames beim Laden ändern“
Optionen

Hi Alsion,

"(...) ändere ich das "normale" Frameset in der Größe."
Zuerst war ich erstaunt, aber du meinst wahrscheinlich, dass du deine Standardgrösse änderst. Mir ging kurz die Vorstellung durch den Kopf, das Frameset DYNAMISCH zu ändern :-)
Obwohl, hmm? Vielleicht geht das *Ideekomm* ...

Wenn du einen anderen Weg gefunden hast, und dein Sonderframeset nicht mehr brauchst ist das sicher die beste Lösung und spart dir Arbeit/Fehlerquellen beim pflegen der Site.

Was meinen Vorschlag angeht, die Überlegung und eine Umsetzung habe ich ja bei mir schon vollzogen (wie im Postscriptum erwähnt) :-)
- Die Seite ruft mein normales Frameset(mit .htm?xyz) auf
- Mein Frameset ruft das Standard-Navigationsframe auf und im Inhaltframe eine kleine Hinweisseite
- Die Hinweisseite wertet dann den ?xyz Kram (die im Frameset parken) aus und springt zur entsprechenden url...

Okay, du weist ja wo du mich findest :-)

Maxx Stone

bei Antwort benachrichtigen
gelöscht_96523 Maxx Stone „Hi Alsion, Zuerst war ich erstaunt, aber du meinst wahrscheinlich, dass du deine...“
Optionen

Doch, doch, genau das mache ich. Ich ändere mein Frameset dynamisch. Man kann nämlich den Reihen und Spalten (rows und cols) Namen geben. Die sind dann per JS ansprechbar. Hab ich auch erst mit diesem Projekt rausgefunden. Sieht so aus: (Nur ein Auszug)


frame src="bilder_40130ps.html" name="bilder" scrolling="NO" noresize marginwidth="0" marginheight="0" frameborder="NO"
frameset rows="97,*" cols="*" border="0" framespacing="0" frameborder="NO" name="reihen"

Das aufrufende JavaScript dann so

function ps()
{
parent.spalten.cols="*,330,428,*";
parent.reihen.rows="97,*";
parent.navi2.location.href='navi_unten.html';
parent.navi1.location.href='navi_40130ps.html';
parent.content.location.href='content_40130ps.html';
parent.rand_content.location.href='rand.html';
parent.rand_rechts.location.href='rand_rechts.html';
parent.bilder.location.href='bilder_40130ps.html';
return false;
}

Tja, so einfach kanns sein ;-)

Gruß,
Alsion

bei Antwort benachrichtigen
Maxx Stone gelöscht_96523 „Doch, doch, genau das mache ich. Ich ändere mein Frameset dynamisch. Man kann...“
Optionen

Hallo Alsion,

ist ja optimal dass man die Frameobjekte direkt ansprechen kann. Mein erster Gedanke wäre da um einige Ecken einen unsicheren Umweg gegangen. ;-)
Ich muss das Wälzen von meinem 800 Seiten Javascript Buch wohl etwas beschleunigen :-)

Gruß
Maxx Stone

bei Antwort benachrichtigen