|
Quick Lists
|
|
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
|
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
|
|
|
 |