Referenzieren in andere Frames mit JavaScript?
Jan
- javascript
0 Christoph Zurnieden0 Jan
Hallo!
Bin ein Neuling in Sachen HTML & JavaScript... hab noch viele Fragen dazu.
Aber hier mein Problem: Ich habe für ein Schulprojekt eine Seite mit einem Online-Shop in HTML geschrieben. Sie ist in Frames aufgebaut. Kann ich nun , mit dem JavaScript-Code, der in einer HTML-Datei steht welche in einem Frame angezeigt wird (hier bei meinem Problem ist das der 'Shop') in einen anderen Frame referenzieren, um dort den Warenkorb anzuzeigen? Das will bei mir nicht so recht klappen
Danke schonmal für Hilfe!
Jan
Hi,
Aber hier mein Problem: Ich habe für ein Schulprojekt eine Seite mit einem Online-Shop in HTML geschrieben. Sie ist in Frames aufgebaut. Kann ich nun , mit dem JavaScript-Code, der in einer HTML-Datei steht welche in einem Frame angezeigt wird (hier bei meinem Problem ist das der 'Shop') in einen anderen Frame referenzieren, um dort den Warenkorb anzuzeigen? Das will bei mir nicht so recht klappen
Wäre es nicht ein Schulprojekt ... >;->
Was sieht Deine Framewurschtelei denn bis jetzt aus?
+-----------------------+
| |
| Frameset |
| +--------+ +--------+ |
| | 'shop' | | Waren- | |
| | | | korb | |
| +--------+ +--------+ |
+-----------------------+
Also nebeneinander im Frameset? Dann kannst Du Dein Geschwisterchen nicht direkt ansprechen, da mußt Du über die Eltern gehen.
Näheres gibt's hier:http://de.selfhtml.org/javascript/objekte/frames.htm#scripts
so short
Christoph Zurnieden
Hallo
Also das sieht so aus das ich mehrere Framesets ineinandergelagert habe. Also
+--------------------------------+
| Frameset |
| +-----------------------+ |
| | | |
| | Frameset | |
| | +--------+ +--------+ | |
| | | Waren- | | Logo | | |
| | | korb | | | | |
| | +--------+ +--------+ | |
| +-----------------------+ |
| |
| +-----------------------+ |
| | | |
| | Frameset | |
| | +--------+ +--------+ | |
| | | navi | | 'shop' | | |
| | | | | | | |
| | +--------+ +--------+ | |
| +-----------------------+ |
| |
+--------------------------------+
das in den oben gezeigten fenster 'shop' habe ich eigenltlich auch noch ein frameset (eine eigene navigation für die rubrik "shop"), die kann ich aber, sollte es nötig sein, auch über das übergeordnete Frameset realisieren.
Funktioniert das auch irgendwie sozusagen zwei oder drei "parents" hochgehen?
Danke für die Antwort!
Jan
Hi,
Also das sieht so aus das ich mehrere Framesets ineinandergelagert habe.
Hast Du Dir überhaupt schonmal überlegt, das sowas wirklich nicht sein muß?
Aber das das ein Schulprojekt ist gibt's natürlich einen kleinen Tip: "Keep it simple, Dude!"
das in den oben gezeigten fenster 'shop' habe ich eigenltlich auch noch ein frameset (eine eigene navigation für die rubrik "shop"), die kann ich aber, sollte es nötig sein, auch über das übergeordnete Frameset realisieren.
Wie wäre es, wenn Du ganz auf Frames verzichtest?
Funktioniert das auch irgendwie sozusagen zwei oder drei "parents" hochgehen?
Ja, funktioniert wie ein (in Deinem Fall unbalancierter ) Baum.
frameset
/\
/ \
/ \
/ \
frmst. frmst.
/\ /\
/ \ / \
fs fs fs fs
/\
/ \
fs fs
Mit "parent" kommst Du hoch ("parent" kann auch einen "parent" haben also "parent.parent") und mit window.frames[i] wieder runter. Aber da Du ja in von mir verlinkter Anleitung aus SELFHTML sorgfältig geschmöckert hast, weißt Du das ja eh alles schon und möchtest mich nur prüfen, ob ich das auch selber weiß?
so short
Christoph Zurnieden
Hi!
»»und mit window.frames[i] wieder runter.
Das verstehe ich nicht und es klappt auch nicht wirklich auf diverse Arten die ich ausprobiere... Wie muss ich das denn einsetzen?
jetzt zb hier:
1
/\
/ \
/ \
/ \
2 3
/\ /\
/ \ / \
4 5 6 7
/\
/ \
8 9
um von "9" nach "4" zu referenzieren:
parent.parent.parent.window.frames[??].framename.funktion(variable)
oder wie?
»»Aber da Du ja in von mir verlinkter Anleitung aus SELFHTML sorgfältig geschmöckert hast, weißt Du das ja eh alles schon und möchtest mich nur prüfen, ob ich das auch selber weiß?
Nein ich hatte das da einfach nicht so verstanden... die "parent"-Sache ist ja einfach, aber das andere versteh ich halt so irgendwie nicht...
Danke auf jeden Fall!
Jan
PS: Dann müsste ich das jetzt alles umschreiben wenn ich die Frames rausnehmen würde und durch Tabellen ersetzen würde... Und da ich den ganzen Tag schon an der HP gesessen hab... Faulheit hat gesiegt :-) Außerdem hab ich mich jetzt, glaube auch beim Lehrer, auf Frames festgelegt.
Hi,
»»und mit window.frames[i] wieder runter.
Das verstehe ich nicht und es klappt auch nicht wirklich auf diverse Arten die ich ausprobiere... Wie muss ich das denn einsetzen?
Ein (i)frame kannst Du als Fenster behandeln. Du kommst also genau so auf der einen Seite runter, wie Du auf der anderen hochgestiefelt bist.
2 3
/\ /\ / \ / \ 4 5 6 7
/\ / \ 8 9
um von "9" nach "4" zu referenzieren:
Ich hatte mit Absicht nicht durchnummeriert, um genau das zu vermeiden. Es geht nicht um die Knoten im Baum sondern um die Richtung. Der einzige wichtige Knoten im Baum ist der Wurzelknoten. Dessen Position mußt Du aber nicht kennen, sondern kannst darauf testen: über dem Wurzelknoten kommt nix mehr, es gibt also kein "parent".
Damit weißt Du also schonmal, wie Du elegant hochkommst.
Runter geht's etwas anders, da Du ja mehr als ein Blatt hast. Du hast aber dem Frame zu dem Du hin möchtest einen Namen gegeben. Du kannst also den Baum solange abklappern, bis Du den Namen gefunden hast (Du kannst aber natürlich auch nach einer Funktion in dem Frame suchen, wenn die individuell ist, muß kein Name sein.). Möchtest Du da öfter hin, kannst Du den Pfad dahin in einer Variable speichern.
Das wäre dann die Methode für die Leute mit zuwenig Fingern um alle die Knoten durchzuzählen ;-)
parent.parent.parent.window.frames[??].framename.funktion(variable)
Wenn ich mich nicht verzählt habe stimmt das nicht.
Aber nochmal der Hinweis: "parent", "window" und "frame" sind technisch gesehen kaum mehr als nur andere Namen für ein Fenster. Es gibt zwar kleine Unterschiede, aber die sind hier nicht weiter wichtig.
PS: Dann müsste ich das jetzt alles umschreiben wenn ich die Frames rausnehmen würde und durch Tabellen ersetzen würde...
Habe ich irgendetwas von Tabellen gesagt? Die sind hier zwar nicht ganz so verpönt wie Frames, aber nicht sonderlich viel! ;-)
Überleg' doch mal: hast Du Frames genommen, weil Du meintest damit Dein Problem lösen zu können oder hast Du dsa Problem sorgfältig analysiert, alle Möglichkeiten abgewogen und Dich dann für Frames entscheiden?
Und da ich den ganzen Tag schon an der HP gesessen hab... Faulheit hat gesiegt :-)
Naja, das kann man als Argument gerade mal so durchgehen lassen, vor allem, da es darum erst mal nicht geht.
Aber Du bist Dir schon darüber im Klarem, das Deine ganzen Problem erst durch die Nutzung von Frames entstanden sind, oder?
Außerdem hab ich mich jetzt, glaube auch beim Lehrer, auf Frames festgelegt.
Du bist Schüler, daher darfst Du Dich noch verbessern. Du mußt es dann allerdings auch begründen!
so short
Christoph Zurnieden
Hallo!
Wunderbar jetzt funktioniert es ;-)
Danke für die Hilfe!
Jan