Keir Finlow-Bates Keir Finlow-Bates - 23 days ago 6
Javascript Question

How to get javascript in one frame to wait until a page has loaded in a second frame

I have two frames in a frameset -

frame[0]
contains a script that loads a page into
frame[1]
using

top.frames[1].location.href = 'http://some_location.com/page.html';


and then performs actions on that page, for example searching text within the page. I need the script to wait until
page.html
has loaded in the second frame before doing this, and I can't use
onload=...
in the second page because I have no control over its source.

Is there a way to do this?

Answer

use onload event of FRAME element

edit:

<frame onload = "if( top.frames[1].location.pathname == '/page.html' " ) alert( 'loaded' )";

or if you load different pages to the same frame use this:

<frame onload = "if( top.frames[1].location.pathname != 'about:blank' " ) alert( 'loaded' )";

or

<frame src = '/dummyInitial.html' onload = "if( top.frames[1].location.pathname != '/dummyInitial.html' " ) alert( 'loaded' )";