Frames - no scrollbar

W

wardemon

Hi all,

I have a frame layout of my site as follows:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>WikiTech</title>
</head>
<frameset id="fstSiteLayout" rows="115,*,22" bordercolor="#dcdcdc"
frameborder="yes" framespacing="1">
<frame id="frmMastHeadFrame" scrolling="no" noresize
target="frmContentFrame" src="./Aspx_Data/WikiTech_Site/masthead.aspx"
/>
<frameset id="fstMainLayout" cols="216,*" frameborder="yes"
framespacing="3">
<frameset id="fstNavigationLayout" rows="102,*"
framespacing="0" frameborder="no">
<frame id="frmQuickSearchFrame" scrolling="no"
src="./Aspx_Data/WikiTech_Site/quicksearch.aspx" />
<frame id="frmNavTreeFrame" scrolling="auto"
target="frmContentFrame" src="./Aspx_Data/WikiTech_Site/navtree.aspx"
/>
</frameset>
<frame id="frmContentFrame" frameborder="no"
bordercolor="#003399" src="./Aspx_Data/WikiTech_Site/main.aspx" />
</frameset>
<frame id="frmDiscussThreadFrame" scrolling="no" noresize
target="frmContentFrame"
src="./Aspx_Data/WikiTech_Site/discussthread.aspx" />
</frameset>
</html>

Then on the discussthread.aspx page (frame id of
"frmDiscussThreadFrame"), there is a button there that when clicked, it
will call the javascript function below:

function jsfToggleDiscussionFrame()
{
var fstSiteLayout =
window.parent.document.getElementById("fstSiteLayout");
var frmDiscussThreadFrame =
window.parent.document.getElementById("frmDiscussThreadFrame");
var intRowSize =
fstSiteLayout.rows.substring(fstSiteLayout.rows.lastIndexOf(',') + 1);
if (intRowSize != 22)
{
fstSiteLayout.rows="115,*,22";
frmDiscussThreadFrame.scrolling="no";
frmDiscussThreadFrame.noResize=true;

}
else
{
fstSiteLayout.rows="115,*,115";
frmDiscussThreadFrame.scrolling="auto";
frmDiscussThreadFrame.noResize=false;

}
}

The javascript function works on expanding & restoring the
"frmDiscussThreadFrame" frame without a problem.

My problem is that when the frame is on "expanded" form, scrollbars
wont show up, even if the discussthread.aspx page has a lot of content
in it. I'm really in a stump here.

Tha javascript code looks correct though:
fstSiteLayout.rows="115,*,115";
frmDiscussThreadFrame.scrolling="auto";
frmDiscussThreadFrame.noResize=false;
I've tried frmDiscussThreadFrame.scrolling="yes"; too but still,
scrollbar for the discussthread.aspx page won't show up.

What I notice is that when the frame definition of the frame id:
"frmDiscussThreadFrame" has been remove of the scrolling="no" tag, the
javascript works! I will have scrollbars when on "expanded" form.

<frame id="frmDiscussThreadFrame" noresize target="frmContentFrame"
src="./Aspx_Data/WikiTech_Site/discussthread.aspx" />

So my impression on this is that you cannot define the javascript
frmDiscussThreadFrame.scrolling="auto"; or
frmDiscussThreadFrame.scrolling="yes"; on demand.

Is this true? Or I've made a mistake somewhere?

Thanks,
Henry :)
 
A

ASM

wardemon a écrit :
function jsfToggleDiscussionFrame()
{
var fstSiteLayout =
window.parent.document.getElementById("fstSiteLayout");
var frmDiscussThreadFrame =
window.parent.document.getElementById("frmDiscussThreadFrame");
var intRowSize =
fstSiteLayout.rows.substring(fstSiteLayout.rows.lastIndexOf(',') + 1);
if (intRowSize != 22)
{
fstSiteLayout.rows="115,*,22";
frmDiscussThreadFrame.scrolling="no";
frmDiscussThreadFrame.noResize=true;

This last line would have to mean nothing
(not important as you want resising)
}
else
{
fstSiteLayout.rows="115,*,115";
frmDiscussThreadFrame.scrolling="auto";
frmDiscussThreadFrame.noResize=false;

Wouldn't it have to be :
frmDiscussThreadFrame.noresize=false;
}
}

The javascript function works on expanding & restoring the
"frmDiscussThreadFrame" frame without a problem.

a chance ?
My problem is that when the frame is on "expanded" form, scrollbars
wont show up, even if the discussthread.aspx page has a lot of content
in it. I'm really in a stump here.

Tha javascript code looks correct though:
fstSiteLayout.rows="115,*,115";
frmDiscussThreadFrame.scrolling="auto";
frmDiscussThreadFrame.noResize=false;

try :
frmDiscussThreadFrame.removeAttribute("noresise");

and don't forget to set it back in first condition
frmDiscussThreadFrame.setAttribute("noresise","noresize");
or ?
frmDiscussThreadFrame.setAttribute("noresise","true");
I've tried frmDiscussThreadFrame.scrolling="yes"; too but still,
So my impression on this is that you cannot define the javascript
frmDiscussThreadFrame.scrolling="auto"; or
frmDiscussThreadFrame.scrolling="yes"; on demand.

and with setAttribute ?
frmDiscussThreadFrame.setAttribute("scrolling","yes");
 
W

wardemon

Hi,
Thanks for the tip. I've tried your suggestions but still it wont
work. Here's a quick excersise example of my problem:
I still can't have the noresize and the scrolling property of the
frame object to work. I'm using IE6 on Windows XP Service Pack 2

Thanks,
Henry :)

framed_site.html
======
<html>
<frameset cols="50%,50%">
<frame id="leftFrame" src="frame_scroll.htm">
<frame id="rightFrame" noresize scrolling="no" src="frame_a.htm">
</frameset>
</html>

frame_scroll.htm
=======
<html>
<head>
<script type="text/javascript">
function enableScrolling()
{
window.parent.document.getElementById("rightFrame").scrolling="yes";
window.parent.document.getElementById("rightFrame").noresize=false;
}
function disableScrolling()
{
window.parent.document.getElementById("rightFrame").scrolling="no";
window.parent.document.getElementById("rightFrame").noresize=true;
}
</script>
</head>
<body>
<input type="button" onclick="enableScrolling()" value="Scroll bars &
Resize" />
<input type="button" onclick="disableScrolling()" value="No scroll bars
& NoResize" />
</body>
</html>


frame_a.htm
=========
<html>
<head>
</head>
<body>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
Some Text Here <br>
</body>
</html>
 
A

ASM

wardemon a écrit :
I still can't have the noresize and the scrolling property of the
frame object to work. I'm using IE6 on Windows XP Service Pack 2

I'm very sorry for you.

I think you'll have to move border inter-frames to excite IE :)
(Opera needs that too)
(Safari and iCab do nothing with theses scroll and co)

framed_site.html
======
<html>
<frameset id="general" cols="50%,50%">
<frame id="leftFrame" src="frame_scroll.htm">
<frame id="rightFrame" noresize scrolling="no" src="frame_a.htm">
</frameset>
</html>

frame_scroll.htm
=======
<html>
<head>
<script type="text/javascript">
function enableScrolling()
{
var target = parent.document.getElementById("rightFrame");
target.scrolling='yes';
target.removeAttribute('noresize');
// move your bottom you IE and others !
parent.document.getElementById("general").setAttribute('cols','51%,49%');
setTimeout(
'parent.document.getElementById("general").setAttribute("cols","50%,50%")',
50);
}
function disableScrolling()
{
var target = parent.document.getElementById("rightFrame");
target.setAttribute('noresize',true);
// or ?
// target.noresize=true;
target.scrolling='no';
// move your bottom you IE and others !
parent.document.getElementById("general").setAttribute('cols','51%,49%');
setTimeout(
'parent.document.getElementById("general").setAttribute("cols","50%,50%")',
50);
}
</script>
</head>
<body>
<input type="button" onclick="enableScrolling()" value="Scroll bars &
Resize" />
<input type="button" onclick="disableScrolling()" value="No scroll bars
& NoResize" />
</body>
</html>
 
W

wardemon

found the answer by using document.body.scroll

function jsfToggleDiscussionFrame()
{
var fstSiteLayout =
window.parent.document.getElementById("fstSiteLayout");
var frmDiscussThreadFrame =
window.parent.document.getElementById("frmDiscussThreadFrame");
var intRowSize =
fstSiteLayout.rows.substring(fstSiteLayout.rows.lastIndexOf(',') + 1);
if (intRowSize != 22)
{
fstSiteLayout.rows="115,*,22";
frmDiscussThreadFrame.scrolling="no"; //does not work for some
reason
frmDiscussThreadFrame.noResize=true; //disables resizing of
discussion frame
document.body.scroll = "no"; //hides scrollbars
}
else
{
fstSiteLayout.rows="115,*,115";
frmDiscussThreadFrame.scrolling="auto"; //does not work for
some reason
frmDiscussThreadFrame.noResize=false; //enable resizing of
discussion frame
document.body.scroll = "yes"; //displays scrollbars
}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top