Connecting Tech Pros Worldwide Forums | Help | Site Map

Problem with window.opener in Firefox/Mozilla

fogwolf
Guest
 
Posts: n/a
#1: Jul 23 '05
First a basic outline of what I am trying to do:

I want to have a page spawn a pop-up when you click "submit" on its
form. On this pop-up page there will be another form. When you click
"submit" on the pop-up's form I want the pop-up to close & a new page
to load in the "parent" window/page. I have this working in IE but
cannot get it to work in Firefox. The parent window correctly loads
the new page after submitting from the pop-up, however the pop-up will
not close. Here is what I have in my pop-up page:

<body bgcolor=#fffff0
onLoad="window.opener.name='mainPage';window.opene r.opener=window">

Basically giving a name to the parent window & then setting the parent
window's opener to the pop-up. Here is my form tag for the pop-up
page:

<form action=geturls.jsp target="mainPage" onSubmit="return
validate(this)">

So now the target of the submission from the pop-up is the initial
parent window. The next page which loads in the parent window (after
submitting from the pop-up) has the following body tag:

<body bgcolor=#fffff0 onLoad="javascript:window.opener.close()">

Since I set the pop-up as the opener of the parent window from the
pop-up html with the tag I show above, this should work. It does work
perfectly in IE but in Firefox the pop-up stays open & I get the
following javascript error:

window.opener has no properties

I am using Firefox 0.9.3.

I should also mention that the "validate()" method in pop-up needs to
return "true" if there are no validation errors with the pop-up's form
& then post the form to the main page since it loads a *different*
page (i.e. it doesn't just reload the page already loaded in the
parent window), so I cannot just call "window.close()" in the
validate() function.

Thanks!

Grant Wagner
Guest
 
Posts: n/a
#2: Jul 23 '05

re: Problem with window.opener in Firefox/Mozilla


fogwolf wrote:
[color=blue]
> First a basic outline of what I am trying to do:
>
> I want to have a page spawn a pop-up when you click "submit" on its
> form. On this pop-up page there will be another form. When you click
> "submit" on the pop-up's form I want the pop-up to close & a new page
> to load in the "parent" window/page. I have this working in IE but
> cannot get it to work in Firefox. The parent window correctly loads
> the new page after submitting from the pop-up, however the pop-up will
> not close. Here is what I have in my pop-up page:
>
> <body bgcolor=#fffff0
> onLoad="window.opener.name='mainPage';window.opene r.opener=window">
>
> Basically giving a name to the parent window & then setting the parent
> window's opener to the pop-up. Here is my form tag for the pop-up
> page:
>
> <form action=geturls.jsp target="mainPage" onSubmit="return
> validate(this)">
>
> So now the target of the submission from the pop-up is the initial
> parent window. The next page which loads in the parent window (after
> submitting from the pop-up) has the following body tag:
>
> <body bgcolor=#fffff0 onLoad="javascript:window.opener.close()">
>
> Since I set the pop-up as the opener of the parent window from the
> pop-up html with the tag I show above, this should work. It does work
> perfectly in IE but in Firefox the pop-up stays open & I get the
> following javascript error:
>
> window.opener has no properties
>
> I am using Firefox 0.9.3.[/color]

It would appear that Firefox does not set window.opener when a window is
opened using the TARGET attribute alone. So open the window using
JavaScript and window.opener will be set appropriately (assuming the
window opens at all that is).

Variation on <url: http://jibbering.com/faq/#FAQ4_37 />:

<form action=geturls.jsp target="mainPage"
onSubmit="
if (validate(this)) {
window.open('', this.target);
return true;
} else {
return false;
}
"[color=blue]
>[/color]

--
Grant Wagner <gwagner@agricoreunited.com>
comp.lang.javascript FAQ - http://jibbering.com/faq

Closed Thread