Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4852280
Votes 5
Synopsis IE displays unnecessary horizontal scroll bar in frameset in J2SE API spec
Category doclet:tbd
Reported Against 1.4.1
Release Fixed 1.5(tiger-b30)
State 10-Fix Delivered, bug
Priority: 3-Medium
Related Bugs
Submit Date 22-APR-2003
Description
Fixed.
 xxxxx@xxxxx  2003-11-15

DESCRIPTION OF THE PROBLEM :
 
http://java.sun.com/j2se/1.3/docs/api/index.html
http://java.sun.com/j2se/1.4.1/docs/api/index.html
http://java.sun.com/j2se/1.4.2/docs/api/index.html


The index-file of the docs is a frameset. But the right frame is too wide to fit in the window.

...
<FRAMESET cols="20%,80%">
<FRAMESET rows="30%,70%">
<FRAME src="overview-frame.html" name="packageListFrame" >
<FRAME src="allclasses-frame.html" name="packageFrame">
</FRAMESET>
<FRAME src="overview-summary.html" name="classFrame">
</FRAMESET>
...

So it is better like this:

...
<FRAMESET cols="20%,80%">
<FRAMESET rows="30%,70%">
<FRAME src="overview-frame.html" name="packageListFrame" >
<FRAME src="allclasses-frame.html" name="packageFrame">
</FRAMESET>
<FRAME src="overview-summary.html" name="classFrame"
scrolling="yes">
</FRAMESET>
...


The the output from typing `diff index.html index.html.new
` at the DOS prompt looks like this:

15c15
< <FRAME src="overview-summary.html" name="classFrame">
---
> <FRAME src="overview-summary.html" name="classFrame"
scrolling="yes">


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Just open the index-file. It does not need any further explanation.
Please see the attached "doc.jpg" file.

REPRODUCIBILITY :
This bug can be reproduced always.
(Review ID: 166758) 
======================================================================
Work Around
The horizontal scroll bar will go away if you change api/index.html
from this:
<FRAME src="overview-summary.html" name="classFrame">

to this:
<FRAME src="overview-summary.html" name="classFrame" scrolling="yes">

The scrolling="yes" attribute forces the vertical scroll bar to appear
(even if the content completely fits in the frame) which causes 
Internet Explorer to layout the vertical scroll bar before it starts
laying out the page, thereby rendering the document inside the area 
bounded by the vertical scroll bar (instead of behind it), causing the
horizontal scroll bar to disappear.  Voila!  No more horizontal scrolling
needed.
Evaluation
This is a case that does not appear to have been fixed by the following bug fix,
where this bug was fixed for Netscape/Mozilla:
4749453: Displays unnecessary horizontal scroll bars - invalid HTML DOCTYPE

One property of this bug is that no matter how wide you make the window,
it's never wide enough to make the entire width of the document display
and for the horizontal scroll bar to disappear.

Changed synopsis from:
  Frameset of Java 2 Platform API Specification

  IE displays unnecessary horizontal scroll bar in frameset in J2SE API spec

 xxxxx@xxxxx  2003-04-22

Upon further research, this is a bug in Internet Explorer that
is not present in Netscape or Mozilla.

  Internet Explorer frame bug

  When Internet Explorer displays a frameset document, if one of the 
  frames has too much vertical content to fit in its space on the screen, 
  as expected, a vertical scrollbar appears.  Unfortunately, IE considers
  the rectangular area *behind* the scrollbar as space for text layout. 
  The result is that the document lays out behind the scroll bar, and in 
  a stunning example of doublethink, IE then says "Whoops, the layout is 
  running off the right side of the page" and also displays a horizontal 
  scrollbar. Even resizing the frame manually won't get rid of the horizontal
  scrollbar (as long as the document still wants more vertical space than 
  is available to it).
  - Paraphrased from  xxxxx@xxxxx  24 October 2002


Three possible solutions:
  1) Ignore the problem and wait for MS to fix the problem
     However, I could not find this bug on microsoft.com in knowledge base
     and don't know how to submit bugs to MS.
  2) Remove the DOCTYPE declaration from the top of the index.html file.
     The effect is apparently to throw IE into "quirks" mode, which 
     perversely seems to behave better in this case than "standards" mode.
  3) Turn on scrolling="yes" attribute, which forces the vertical (but not
     horizontal) scroll bar to appear and forces IE to realize its area
     is not available for text layout.  If all documents are longer than
     one screen, it won't matter that the vertical scroll bar is always
     present.  However, if any page fits fully on the screen, the scroll
     be will still be present (though the scroll arrows will not appear).

 xxxxx@xxxxx  2003-04-23

One symptom of this problem is that no matter how wide you make
the window, as long as it is showing frames, if the vertical scroll
bar is showing in the right frame, the horizontal scroll bar will also show.
You can see that this problem is caused by the vertical scroll bar
by going to a page whose content fits entirely in the frame:

Click java.lang
Click Cloneable

Make the window tall enough so the vertical scroll bar disappears.
This causes the horizontal scroll bar to disappear.

 xxxxx@xxxxx  2003-08-02

Fixed using recommendation.
 xxxxx@xxxxx  2003-11-15
Comments
  
  Include a link with my name & email   

Submitted On 30-APR-2003
ccerberus
I recommend solution #3.  However, it might also be 
worthwhile to find out how to submit bugs to MS, assuming 
that they'll care.

The fact that that's a mysterious process is probably due to 
their complete disinterest in what the public considers poor 
functionality.


Submitted On 30-JUN-2003
stmoebius
Actually, this is a round-off bug in IE. The solution is to use
  <frameset cols="20%,*">
instead of 
  <frameset cols="20%,80%">


Submitted On 29-JUL-2003
stephung
On IE6, use
  <frameset cols="20%,*">
doesn't solve the problem.


Submitted On 26-SEP-2005
Thank you very much for this! That scrollbar="yes", I love it. But that vertical scrollbar kept bothering me so I wrote a little javascript that removes it if it is redundant. I don't know your application, but I got an iframe with fixed width and height, so my script may be a little too easy. However I think to request te actual frame width and height should not be too dificult.

Here is my script. I don't have IE5 so I cannot test it with that browser, however this does work for me in IE6. (438 is my iframe height).

window.onload = function()
{
	if( document.documentElement
	 && document.documentElement.scrollHeight
	 && document.documentElement.scrollHeight < 438 )
	{
		document.documentElement.style.overflowY = 'hidden';
	}
	else if( document.body
	      && document.body.scrollHeight
	      && document.body.scrollHeight < 438 )
	{
		document.body.style.overflowY = 'hidden';
	}
	// Mozilla would need document.height, however it already
	// hides the vertical scrollbar itself.
}


Submitted On 08-JAN-2006
If you place whatever content you are to expose inbetween <td> </td> tags leaving out all previous and subsequent tags the content then follows the width of the frame at any size........



PLEASE NOTE: JDK6 is formerly known as Project Mustang