f



How to force a frame to load prior to others?...

I have a situation where I have 3 frames.  The first frame is dynamic
and contains javascript variables for use throughout the frameset page
and the other frames.

Everything works fine...except that the first frame NEEDS to be loaded
first so that the other pages can access its variables.  What happens
in IE is that the frames load up randomly (or so it seems).  So
sometimes everything blows b/c the first frame did not load first and
all variables are undefined, etc.

So...essentially, what I'd like to know is...is there any way to force
a frame to load?...or perhaps some other trick, etc.

A few things I've tried...
....A timer loop after first frame to pause...did NOT work
....document.close() and document.open() after first frame...to clear
cache...did NOT work
....I put an alert() after the first frame, and that somehow forces
things to load in the correct order.  But I cannot keep that alert
there.

Can anybody suggest anything...PLEASE...this is killing me...

Thx in advance...B.

Here is a snippet of code...

  vOutput = '<frameset framespacing="0" border="0"
rows="0,80,98%,34,0" frameborder="0">\n';
  document.writeln(vOutput);
  vOutput = '  <frame marginheight="0" scrolling="no" noresize
marginwidth="0" name="variables" target="variables" src="' + vModId +
'/Variables.htm">\n';
  document.writeln(vOutput);
  //Need to pause here

  vOutput = '  <frame marginheight="0" scrolling="no" noresize
marginwidth="0" name="header" target="main" src="header.htm">\n';
  document.writeln(vOutput);
  vOutput = '  <frame marginheight="0" scrolling="auto" noresize
marginwidth="0" name="main" target="main" src="main.htm">\n';
  document.writeln(vOutput);
  vOutput = '  <frame marginheight="0" scrolling="no" noresize
marginwidth="0" name="footer" target="main" src="footer.htm">\n';
  document.writeln(vOutput);
  vOutput = '  <frame marginheight="0" scrolling="no" noresize
marginwidth="0" name="ping" target="ping" src="../../Refresh.asp">\n';
  document.writeln(vOutput);
  vOutput = '  <noframes><body><p>This page uses frames, but your
browser doesn&#39;t support them.</p></body></noframes>\n';
  document.writeln(vOutput);
  vOutput = '</frameset>\n';
  document.writeln(vOutput);
0
vkloc
6/26/2003 6:18:27 PM
comp.lang.javascript 38370 articles. 2 followers. javascript4 (1315) is leader. Post Follow

2 Replies
574 Views

Similar Articles

[PageSpeed] 57

"vk" <vkloc@hotmail.com> schreef in bericht
news:e28dfc2.0306261018.594b7535@posting.google.com...
> I have a situation where I have 3 frames.  The first frame is dynamic
> and contains javascript variables for use throughout the frameset page
> and the other frames.
>
> Everything works fine...except that the first frame NEEDS to be loaded
> first so that the other pages can access its variables.  What happens
> in IE is that the frames load up randomly (or so it seems).  So
> sometimes everything blows b/c the first frame did not load first and
> all variables are undefined, etc.
>
> So...essentially, what I'd like to know is...is there any way to force
> a frame to load?...or perhaps some other trick, etc.
>
> A few things I've tried...
> ...A timer loop after first frame to pause...did NOT work
> ...document.close() and document.open() after first frame...to clear
> cache...did NOT work
> ...I put an alert() after the first frame, and that somehow forces
> things to load in the correct order.  But I cannot keep that alert
> there.
>
> Can anybody suggest anything...PLEASE...this is killing me...
>
> Thx in advance...B.
>
> Here is a snippet of code...


Hi,

Why don't you load the other frames from variables.htm, like:

<body onload='fillFrames'>

and:

function fillFrames() {
parent.header.location="header.htm"
parent.main.location="main.htm"

etc..

Then, in the frameset, leave the src attr empty or about:blank

Fred


0
Fred
6/26/2003 6:35:41 PM
"Fred Serry" <fred.NOSPAM.serry@planet.nl> wrote in message news:<bdfec3$sl9ao$1@ID-108377.news.dfncis.de>...
> "vk" <vkloc@hotmail.com> schreef in bericht
> news:e28dfc2.0306261018.594b7535@posting.google.com...
> > I have a situation where I have 3 frames.  The first frame is dynamic
> > and contains javascript variables for use throughout the frameset page
> > and the other frames.
> >
> > Everything works fine...except that the first frame NEEDS to be loaded
> > first so that the other pages can access its variables.  What happens
> > in IE is that the frames load up randomly (or so it seems).  So
> > sometimes everything blows b/c the first frame did not load first and
> > all variables are undefined, etc.
> >
> > So...essentially, what I'd like to know is...is there any way to force
> > a frame to load?...or perhaps some other trick, etc.
> >
> > A few things I've tried...
> > ...A timer loop after first frame to pause...did NOT work
> > ...document.close() and document.open() after first frame...to clear
> > cache...did NOT work
> > ...I put an alert() after the first frame, and that somehow forces
> > things to load in the correct order.  But I cannot keep that alert
> > there.
> >
> > Can anybody suggest anything...PLEASE...this is killing me...
> >
> > Thx in advance...B.
> >
> > Here is a snippet of code...
> 
> 
> Hi,
> 
> Why don't you load the other frames from variables.htm, like:
> 
> <body onload='fillFrames'>
> 
> and:
> 
> function fillFrames() {
> parent.header.location="header.htm"
> parent.main.location="main.htm"
> 
> etc..
> 
> Then, in the frameset, leave the src attr empty or about:blank
> 
> Fred

Worked !!

Clever...never thought of that :(
It definately ensures the correct loading order.

Thx Fred...

Cheers...vk.
0
vkloc
6/27/2003 8:30:33 PM
Reply: