Frames - no scrollbar

Discussion in 'Javascript' started by wardemon, Dec 3, 2006.

  1. wardemon

    wardemon Guest

    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 :)
    wardemon, Dec 3, 2006
    #1
    1. Advertising

  2. wardemon

    ASM Guest

    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");




    --
    Stephane Moriaux et son (moins) vieux Mac déjà dépassé
    Stephane Moriaux and his (less) old Mac already out of date
    ASM, Dec 3, 2006
    #2
    1. Advertising

  3. wardemon

    wardemon Guest

    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>
    wardemon, Dec 4, 2006
    #3
  4. wardemon

    ASM Guest

    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>


    --
    Stephane Moriaux et son (moins) vieux Mac déjà dépassé
    Stephane Moriaux and his (less) old Mac already out of date
    ASM, Dec 4, 2006
    #4
  5. wardemon

    wardemon Guest

    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
    }
    }
    wardemon, Dec 7, 2006
    #5
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Don Schneider
    Replies:
    0
    Views:
    1,998
    Don Schneider
    Jun 27, 2003
  2. ws
    Replies:
    3
    Views:
    917
    Neredbojias
    Aug 20, 2005
  3. Replies:
    3
    Views:
    395
    dorayme
    Apr 16, 2006
  4. Michael Weis
    Replies:
    13
    Views:
    987
    Michael Weis
    Aug 12, 2006
  5. Alex

    ScrollBar? Does it exist just WEB ScrollBar Control?

    Alex, Apr 1, 2004, in forum: ASP .Net Web Controls
    Replies:
    1
    Views:
    257
    Alvin Bruney [MVP]
    Apr 4, 2004
Loading...

Share This Page