Fenstername über window.opener

Deemax

Erfahrenes Mitglied
Hallo,

ich öffene ein neues Fenster und möchte nun im diesem den Fenstername den in vorher gesetzt habe auslesen. Allerdings klappt das nicht so ganz weil ich Framesets verwende.

Code:
... 
var links=0;
var oben=0;
top.main_Frame.name ='fensterxy';
NewWin = window.open(winname, wintitel, "width="+breite+",...)
 }

Zum Auslesen wollte ich das benutzen klappt aber nicht:

window.opener.top.main_Frame.name;

ich muß den Fensternamen wissen weil ich per Submit Daten in die Ursprungsfenster schicken muß.
 
Bin ein Stück weiter.
Muß einfach top.window.opener.name angeben. Doch mein Problem ist damit nicht gelöst. Die seite die das ausliest ist auch in einem Frameset. Im andren Frame sind Links die die Seite(meine zum Auslesen) neu laden. Will ich danach den Fensternamen auslesen geht das nicht mehr?

Woran liegt das, bzw. weiß einer eine Lösung?
 
Hallo....

versuch doch mal, als TARGET in dem entsprechenden Formular "main_Frame" anzugeben.... denn wenn das neue Fenster aus diesem Frame geöffnet wurde, besitzt der opener ja schon einen Namen.... den Namen des Frames(welches aus Javascript-Sicht auch ein Fenster ist)
 
Nein, das geht leider nicht.

Ich muß doch üner das opener-Objekt gehen sonst läd der die seite doch einfach in einem neuen Fenster. Das zweite Problem, das Frame aus dem die Seite geöffnet wird ist nicht das Frame das die Daten empfangen soll.
 
Hallo,

irgendwie versteh ich nicht ganz, was du willst.

Du hast also eine HTML Datei, die einem anderen Frame einen Namen gibt und
anschließend ein PopUp aufruft.
Von diesem PopUp aus willst du nun den eben vergebenen Namen von dem Frame
auslesen, also in deinem Beispielscript "fensterxy", richtig?

Naja, um diesen Frame enzusprechen, brauchst du ja schonmal den Namen.
Oder eben eine Nummer.
Versuch mal das hier (Die Null natürlich evtl. noch anpassen):
Code:
window.opener.frames[0].name
Aber:
Jetzt hast du den Namen vom Frame, aber ich denke mal, dass du in deinem Formular
den Namen des Fensters brauchst.

Wenn ich jetzt nichts übersehen, kannst du aber ein Formular nur in ein Fenster ab-
schicken, nicht aber in einem Frame, der sich in einem anderen Fenster befindet.

Freilich kannst du mit (siehe oben) window.opener.frames[0] auf den Frame zugreifen,
aber ein Formular kannst du damit noch nicht absenden.

Versuch mal, deinem Fenster einem Namen zu geben:
Code:
window.top.name = 'Zielfenster';
Und in deinem Formular im PopUp als target "Zielfenster" setzen.

Damit kannst du das Formular immerhin schonmal in dem Fenster abschicken.
Den Rest (sprich: zum Frameset zurückleiten) kannst du ja z.B: mit dem Script machen,
das das Formular auswertet.
 
Mmmh,

warum soll man ein Formular nicht in ein Frame senden können...
das geht doch, solange dieses Frame noch vorhanden ist, recht gut(auch wenn es sich in einem Anderen Fenster befindet)

Wie gesagt...Frame-Name als target im Formular angeben-->Senden-->Test
 
Sieht gut aus aber wie funktioniert das wenn dein Popup auch ein Frameset ist?

Also der Aufruf (unten_links etc. ) auch aus einem Frame im Popup kommt?
 
Original geschrieben von Deemax
Sieht gut aus aber wie funktioniert das wenn dein Popup auch ein Frameset ist?

Probiers doch mal aus...;)
Ich wüsst nicht, warum das einen Unterschied machen sollte, dass das Popup ein Frameset ist.... solange das Fenster(und auch auf die Gefahr hin, mich zu wiederholen....ein Frame ist auch ein Fenster)...bekannt ist, sollte man es auch als Ziel benutzen können,....z.B.in Links oder Formularen.
 
Hmm bei mir öffnet er immer ein neues Fenster. Dein Beispiel funks auch mit Frames im Popup.

Liegt das an der Verschachtelung meiner Frames in die die Daten geschickt werden sollen.

Mein "Mutterframeset":

Code:
	<frameset rows="78,*" frameborder="NO" border="0" framespacing="0">
		<frame name="topFrame" src="head_index.asp?lid=1&cid=1" scrolling="no" noresize>
		<frameset rows="*" cols="320,*" framespacing="0" frameborder="NO" border="0">
			<frame name="leftFrame" src="index_left.asp?strProductGruppe=Is_Null&strBestNo">				
						
				<frame name="main_Frame" src="new_product/new_product.asp?lid=1&cid=1">			
			
		</frameset>
	</frameset>

In das Frame "main_Frame" sollen die Daten aus dem Popup geschickt werden.
Als target gebe ich "main_Frame" an.

Mein Link der das Popup öffent befindet sich im "leftFrame" das auc hein Frameset ist.

Code:
<frameset rows="24,*" frameborder="NO" border="0" framespacing="0" scrolling="no" noresize>
		<frame name="left_Top_Frame" src="left_top.asp?lid=<%=lid%>&cid=<%=cid%>&str_from_tree=<%=str_from_tree%>">
		<frame name="left_Body_Frame" src="<%=strDateiAufruf%>.asp">
	</frameset>

Wenn ich mit top.window.opener.name den Framenamen auslese bekomme ich "left_Body_Frame" ausgegeben. ich muß allerdings noch eine Hierachie höher. Was muß ich dafür machen? Das wird das Problem sein, oder?
 
Zuletzt bearbeitet:
An der Verschachtelung kann es eigentlich nicht liegen.

Sobald du ein Fenster oder ein Frame hast, welches einen Namen besitzt, ist es dem Browser bekannt und lässt sich über diesen
Namen ansprechen.... auf welcher Ebene in der Fensterhierarchie es sich dabei befindet, ist da egal.

Ich habe das Beispiel mal mit deinen Framesets nachgestellt... auch das läuft:)
Vielleicht hast du irgendwo einen Tippfehler bei dem Framenamen(korrekte Gross/Kleinschreibung ist da wichtig)

Wenn ich mit top.window.opener.name den Framenamen auslese bekomme ich "left_Body_Frame" ausgegeben. ich muß allerdings noch eine Hierachie höher. Was muß ich dafür machen? Das wird das Problem sein, oder?
An den Namen des Elternfensters des openers gelangst du über:
Code:
window.opener.parent.name
... und zwar immer(sofern ein Fenster per JS geöffnet wurde)... das würde dir "leftFrame" zurückgeben.

Aber wozu willst du den Namen dieses Frames wissen?
Ich denk du willst nach "main_Frame" senden? Dafür hast du alles was du brauchst... den Namen "main_Frame"
 

Neue Beiträge

Zurück