Opener-Objekt liefert im IE undefined

desaster0505

Erfahrenes Mitglied
Hallo!

Ich habe ein Fenster was ich mit window.open geöffnet habe.

In diesem Fenster verwende ich das opener-Objekt um im urspr. Fenster einen Link zu öffnen, der in dem neuen Fenster enthalten ist.

Das ganze funktioniert im FF2, aber im IE liefert mit das opener-Objekt ("alert(opener);") ein undefined.

Kann mir jemand sagen, wie ich das lösen kann?


Danke für eure Antwort im Voraus
 
Hier das JS, mit dem ich das Popup öffne:

Javascript:
newWin = window.open(URL,"NameDesPopups","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=-1,resizable=0,copyhistory=0,width=1050,height=650");
		if (newWin .opener == null) newWin .opener = newWin ;

Hier ist JS, der dann im Popup NewWin ist (die dann auch Frames enthält):

Javascript:
function ShowDocument2(URL)
	{
		alert(opener); //hier bekomme ich undefined im IE..FF2 geht! Deswegen öffnet sich der Link nicht, weder im PopUP, noch im Opener Fenster, falls vorhanden
		if (window.opener)
		{
			alert(URL);
			window.opener.ShowDocument(URL);//ShowDocument Funktion(siehe weiter unten) imPopUp Fenster
			return false;
			
		}

	}




Javascript:
	function ShowDocument(URL)
			{
				if(opener==null)
				{
					window.location.href=URL; //öffne Link im PopUP
					return;
				}
				if(opener)
				{
				 opener.location.href=URL; //öffne Link im Opener-Fenster
				}
			}
 
Zuletzt bearbeitet:
Falls du die Funktion ShowDocument nicht im Dokument, welches sich im Popup direkt befindest aufrufst, sondern aus einem Dokument innerhalb eines seiner Frames, verwende
Code:
top.opener
...denn die Frames wurden ja nicht per open() geöffnet, sondern ihr Elternfenster.
 
Hm, ich habe schon top.window probiert und das klappte auch nicht.
Aber ich werde es nochmal mit dem top.opener probieren und gebe dann nochmal bescheid.
 
Dein Tip hat mich auf eine Idee gebracht und meine Funktionen die ich angepasst habe sehen nun so aus. Ein Parent war der Knackpunkt und danach stellte ich fest das der IE die Funktion Showdocument (die aus Showdoument2 heraus) aufgerufen werden sollte, nicht aufgerufen wurde.


Javascript:
function ShowDocument2(URL)
	{		

		if (top.opener)
		{
			
			parent.ShowDocument(URL);//ShowDocument is double used because of the frames in the application
			return false;
			
		}
		if (top.opener==undefined||top.opener==null) //for IE and FF when Window is not in popup
		{
			top.window.location.href=URL;
		}

	}

	function ShowDocument(URL)
			{
			
				//alert("Showdoc:"+opener);
				// console.log("test;"+opener);
				if(opener==null)
				{
					window.location.href=URL;
					return;
				}
				
				if(opener)
				{
				 opener.location.href=URL;
				}
			}

Danke für den Tipp.
 

Neue Beiträge

Zurück