Opening a new window and attaching an onload event listener.

D

Daz

Hello everyone,

I would like to open a child window from the parent, and add an onload
event listener to the child window which will tell the parent when the
document has loaded. As far as I know, this shouldn't be an issue, but
I just can't get it to work. The script only needs to work with
Firefox/Mozilla, so XP code isn't an issue.

I have tried to open a window like so.

var newWindow = open('','','');

This works as expected.
Next I redirect the child window:

newWindow.location.href = 'http://www.google.co.uk';

Again, this works no problem.
before the child window is redirected, I have tried several methods of
adding an onload event listener to the window, from the script inside
the parent window, but nothing seems to work. I have tried:

newWindow.onload = windowLoaded;
newWindow.document.onload = windowLoaded;
newWindow.addEventListener('onload', windowLoaded, true);
newWindow.document.addEventListener('onload', windowLoaded, true);

None of which seem to work. Please could someone explain where I have
screwed up?

Many thanks.

Daz.
 
F

Fred

Daz said:
Hello everyone,

I would like to open a child window from the parent, and add an onload
event listener to the child window which will tell the parent when the
document has loaded. As far as I know, this shouldn't be an issue, but
I just can't get it to work. The script only needs to work with
Firefox/Mozilla, so XP code isn't an issue.

I have tried to open a window like so.

var newWindow = open('','','');

This works as expected.
Next I redirect the child window:

newWindow.location.href = 'http://www.google.co.uk';

Again, this works no problem.
before the child window is redirected, I have tried several methods of
adding an onload event listener to the window, from the script inside
the parent window, but nothing seems to work. I have tried:

newWindow.onload = windowLoaded;
newWindow.document.onload = windowLoaded;
newWindow.addEventListener('onload', windowLoaded, true);
newWindow.document.addEventListener('onload', windowLoaded, true);

None of which seem to work. Please could someone explain where I have
screwed up?

When you open your popup, it contains an empty document. You attach an
onload handler to the empty document, then re-direct the URL so that
document is destroyed and a new one is loaded.

You have to put the onload handler in the new document, you can't
attach it from the calling page unless you actually write the document
from the calling page (say using document.write).
 
D

Daz

Fred said:
When you open your popup, it contains an empty document. You attach an
onload handler to the empty document, then re-direct the URL so that
document is destroyed and a new one is loaded.

You have to put the onload handler in the new document, you can't
attach it from the calling page unless you actually write the document
from the calling page (say using document.write).

So basically, I need to initiate the page load, and then attach the
event listener? I'm not sure if that will work. I could right, say a
carriage return to the child window, but as soon as I change the
location of the page, I will no doubt lose the event handler.

What I don't understand, is why I can't attach it to the window, as
opposed to the document.

What I am trying to achieve, is an application which can run from the
parent window, and use the child window to navigate to various pages on
the site, and get information from each page (such as links, and user
specific information), so it will effectively work as a macro, saving
the user time waiting for pages to load and clicking on more links. I
am not sure the best way to go about doing this, and the best way I
could think of (above), clearly isn't going to work...

Thank you for your comments Fred. :)
 
D

Daz

Jim said:
Oh, you can attach it to the window, all right, but as soon as you direct
the window to a new URL, what happens? The window discards your attachment
and loads a whole new page.

Oh I see. I keep getting confused between document, and window. I
thought it was the _document_ being redirected, not the window. Hehe.

Thanks for clearing that up for me Jim. :)
 
Y

yuval.invoke

Hi.
I've been struggling with the very same issue for the past few days. I
want to be able to load a new document from a parent window and read
some parameters from the newly opened document. I too, tried attaching
an onload event to the new document, but got undefined values when
trying to read values from the new document. I couldn't find-out why,
until this thread gave me the answer. So, thanks. But, still, I didn't
achieve my goal yet, is there a way it can be done?
Thanks,
- Yuval

Daz כתב:
 
D

Daz

Hi.
I've been struggling with the very same issue for the past few days. I
want to be able to load a new document from a parent window and read
some parameters from the newly opened document. I too, tried attaching
an onload event to the new document, but got undefined values when
trying to read values from the new document. I couldn't find-out why,
until this thread gave me the answer. So, thanks. But, still, I didn't
achieve my goal yet, is there a way it can be done?
Thanks,
- Yuval

Daz כתב:

I think the only solution would be to have a small function in the
child window that executes a function in the parent window onload. You
also need to ensure that the child window is served from the same
domain as the parent window.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top