![]() |
Frames in Frameset mit JS steuern, aber wie?
Hallo,
ich habe da ein (kleines) Problem, und zwar: Ich moechte einfach den Inhalt der Frames in einem Frameset so aendern, dass einmal die Frames „frame1a“, „frame2a“ und „frame3a“ und zum anderen Mal die Frames „frame1b“, „frame2b“ und „frame3b“ angezeigt werden. Das soll abhaengig davon sein ob z.B. eine if-Abfrage „ja“ oder „nein“ ergibt. Framesetbeispiel: <html> <head> <title>Frameset</title> </head> <frameset cols="*,450,*"> <frame name="frame1" src="frame1a.htm"> <frame name="frame2" src="frame2a.htm"> <frame name="frame3" src="frame3a.htm"> </frameset> <noframes></noframes> </html> AIm Beispiel sollen also src=“frame1a.htm“ u.s.w. zu src=“frame1b.htm“ u.s.w. geaendert werden. Ist das z.B. mit einer Variablen, Function (oder was weiss ich) die man im Frameset aufruft und die man zuerst mit JS gesetzt hat moeglich? Geht das ueberhaupt? Meine Idee mit, das Problem so: ... var frame1a="frame1a.htm" ... ... frameset cols="*,450,*"> <frame name="frame1" src="javascript:parent.frame1a"> <frame name="frame2" src="frame2a.htm"> <frame name="frame3" src="frame3a.htm"> </frameset> ... zu loesen scheitert daran, dass immer nur der Text "frame1a.htm" in der Frame reingeladen wird, aber nicht die htm-Seite aufgerufen wird... Wo mache ich den Fehler? Vielen Dank und liebe Gruesse Peter |
probiers folgendermaßen anzusteuern:
document.getElementByName['frame1'].src = "frame1a.html"; |
Schoener Script... aber was soll ich damit machen, wie soll ich ihn einbinden?
Bitte um mehr Info dazu, Danke Peter |
also du schreibst z.B.
if(wert==1) { document.getElementByName['frame1'].src = "frame1a.html"; } if(wert==2) { document.getElementByName['frame1'].src = "frame1b.html"; } ganz einfach ;) alles klar? das heißt du steuerst mit dieser funktion direkt über die hierarchie bestimmte objekte an. |
Ich kappiers einfach nicht! Mit der Funktion:
document.getElementByName['frame1'].src="frame1a.htm" steuere ich das Objekt 'frame1'. Gut, aber wie bringe ich den Script jetzt so hin, dass im "frame1" meines Framesets das Objekt mit dem Inhalt "frame1a.htm" (oder ...1b...) angezeigt wird? Ich bring's nicht zam, stehe scheinbar zu fest auf der Leitung! Peter |
Du machst eine Funktion draus:
Code:
<head> Und dann brauchst du noch einen Link oder Button oder dergleichen, mit dem man die Funktion aufruft. zB: -------------- (JavaScript zusammenschreiben oben!) Schau mal auf selfhtml.teamone.de vorbei, dort steht alles schön erklärt! |
Zitat:
wenn die zuweisung document.getElementByName['frame1'].src = "frame1a.html"; einmal aufgerufen wird, dann steht sofort der neue inhalt drinnen. |
Funkt net, i gib schoen langsam auf...
<html> <head> <title>Frameset</title> <script language="Javascript"> <!-- wert=1 function wechsleFrames(wert) { if(wert==1) { document.getElementByName['frame1'].src="frame1a.htm"; } if(wert==2) { document.getElementByName['frame1'].src="frame1b.htm"; } } // --> </script> </head> <frameset cols="*,450,*"> <frame name="frame1" src="javascript:wechsleFrames(1)"> <frame name="frame2" src="frame2a.htm"> <frame name="frame3" src="frame3a.htm"> </frameset> <noframes></noframes> </html> Peter |
nanana so geht des ned
egal was du beim frame für eine source bei src angibst, die funktion document.getElementByName['frame1'].src="frame1a.htm"; ändert diese source. das heißt du machst deine abfrage und führst je nach if-condition die funktion aus. die funktion bei src hinschreiben is falsch, weil ja sonst der return-wert von der funktion wechsleFrames dort steht und damit fangst ja nix an. also was willst du überhaupt für eine abfrage machen? bei dir wird ma ja ungeduldig :rolleyes: |
Die Funktion wechsleFrames(wert) muss extra aufgerufen werden.
Wenn du das in den src="...." Bereich schreibst, dann kann das nicht funktionieren. Dort muss eine .html-Datei sein. Erklär' uns mal, wann genau und wie sich die Frames ändern sollen. Auf Knopfdruck, nach einer bestimmten Zeit,... Beispiel: In eine deiner Dateien (zB frame1a.html) kommt der Link rein wie oben beschrieben: --------- Frame wechseln --------- Die Funktion wechsleFrames(wert) braucht immer ein Argument ("wert" in dem Fall), mit dem du der Funktion sagst, welches Frameset geladen wird. Mögliche Werte sind hier '1' und '2', wobei eben frame1a... bzw. Frame2a... - je nachdem - geladen wird. In die Datei frame2a.html kommt dann wieder diese Funktion, nur mit '1' als Parameter für "wert": --------- Frame wechseln --------- ==> somit kommt man wieder auf das frame1a/b/c-Frameset zurück! |
Tschuldigung, will nicht das jemand ungeduldig wird...
Also ich versuch mal alles genau zu beschreiben, was ich eigentlich mit dem Script bezwecke. Das Frameset, welches ich schon gepostet habe, soll je nachdem was eine if-Abrage ergibt (in meinem Fall ob ein Cookie(wert) gesetzt ist oder nicht - aber das tut nicht zur eigentlichen Sache) einmal mit diese (frame1a.htm, frame2a.htm und frame3a.htm) und zum anderen Mal mit diesen (frame1b.htm, frame2b.htm und frame3b.htm) Dateien als den Frameinhalten aufgerufen werden. Noch einmal wenn z.B. das Cookie gesetzt ist soll das Frameset so: <frameset cols="*,450,*"> <frame name="frame1" src="frame1a.htm"> <frame name="frame2" src="frame2a.htm"> <frame name="frame3" src="frame3a.htm"> </frameset> und wenn das Cookie nicht gesetzt ist so: <frameset cols="*,450,*"> <frame name="frame1" src="frame1b.htm"> <frame name="frame2" src="frame2b.htm"> <frame name="frame3" src="frame3b.htm"> </frameset> aussehen. Wohlgemerkt, es handelt sich um das gleiche Frameset in ein und der selben Datei. Es sollen also nur die src= Inhalte geaendert werden, abhaengig von der if-Abrage. Ich brauche also nur die Moeglichkeit die src-Inhalte zu aendern. Das will ich mit einem Javascript loesen, weiss aber nicht wie! Habe ich jetzt alles klar erklaert? Ich hoffe jetzt kann mir geholfen werden! Peter |
<html>
<head> <title>abc</title> <script type="text/javascript"> <!-- var cookie = 1; function wechsleFrames(wert) { if(wert==1) { parent.frame1.document.location = "test.html"; parent.frame2.document.location = "test.html"; parent.frame3.document.location = "test.html"; } if(wert==2) { parent.frame1.document.location = "test2.html"; parent.frame2.document.location = "test2.html"; parent.frame3.document.location = "test2.html"; } } //--> </script> </head> <frameset cols="*,450,*" onLoad="wechsleFrames(cookie)"> <frame name="frame1" src="about:blank"> <frame name="frame2" src="about:blank"> <frame name="frame3" src="about:blank"> </frameset> </html> ------------------------------ Soda in etwa... Standardmäßig lädt die Datei also 3 leere Seiten (about:blank - unbedingt zusammenschreiben!). Wichtig ist das fettgedruckte onLoad="....". Hier musst du den entsprechenden Wert eintragen. Ich habe in dem Fall 'cookie' definiert. Auf cookies kann man per document.cookie zugreifen. Hoffe, das hilft weiter! |
Vielen Dank fuer die Hilfe, jetzt funks so wie ich mir das vorgestellt habe!!!!
Peter |
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag