The information I posted before is wrong, if you are calling the main page via
http:\\ protocol rather than file:\\ protocol - the "bug" in IE only affects the file:// protocol
However, I can see a VERY glaring mistake in your code however... you need to fix that before you go any further !
In 'Main.pl' :
print "
<FRAMESET FRAMEBORDER=0 BORDER=0 FRAMESPACING=0 ROWS='15%,*'>
<FRAME SRC='Header.pl?$UserName' NAME='Header' SCROLLING=NO>
<FRAMESET FRAMEBORDER=0 BORDER=0 FRAMESPACING=0 ROWS='93%,*'>
<FRAME SRC='Main.pl?$UserName' NAME='Sign-Out'>
<FRAME SRC='Menu.pl?$UserName' NAME='Menu' SCROLLING=NO>
<NOFRAMES>
<BODY>
</BODY>
</html>";
You open 2 x FRAMESET tags, and a NOFRAMES tag - but they are never closed ! This is invalid HTML, and it is unlikely that the browser will render it properly ! Close those tags and see if it fixes it !
Also, I can see no need to have a nested frameset either - you are displaying all 3 frames in ROWS - you only need to use nested framesets if you are using a combination of rows and columns (eg: 1 row right across the top, then 2 columns underneath).
You should be able to get same results using something like :
<FRAMESET FRAMEBORDER=0 BORDER=0 FRAMESPACING=0 ROWS='15%,79%,*'>
<FRAME SRC='Header.pl?$UserName' NAME='Header' SCROLLING=NO>
<FRAME SRC='Main.pl?$UserName' NAME='Sign-Out'>
<FRAME SRC='Menu.pl?$UserName' NAME='Menu' SCROLLING=NO>
</FRAMESET>
<NOFRAMES><H3>You need a frames compatible browser!</NOFRAMES>
I made the 2nd frame 79% because you have it set for 93% of (100-15)=85% - which is about 79%. Also see how I added some NOFRAMES text (only about 0.0001% of users can't do frames, but if you are including the tag, you might as well put something inside it)
Also, the use of ' around HTML attributes usually works but it is
more correcter to use " (double quotes). Change your
print " and use
print qq~ and close it with
~; instead of
"; - then you can use double quotes inside there for the HTML tags.
For layout purposes, I suggest that you do NOT use % for the frame sizes, coz it will only look nice on browsers with same screen resolution as you are testing on. Use Absolute values, eg: ROWS='60,*,20'
Hope that helps, JC