错了是使右侧IFRAME扩大,左侧缩小到没有

解决方案 »

  1.   

    还有关键的一点是IFRAME里的页面也要随着扩大缩小
      

  2.   

    看了一个楼主说的论坛,那就是一个div的显示和隐藏嘛
    <html>
    <head>
    <script>
    var b=true;
    function showOrHide(){
    b=!b;
    div1.style.display=b?"block":"none";
    div2.innerHTML=b?"隐藏":"显示";
    }
    </script>
    </head>
    <body>
    <div id="div1" style="width:100px;height:100px;background-color:red;float:left;"></div>
    <div id="div2" style="width:10px;height:100px;background-color:green;float:left;cursor:hand;" onclick="showOrHide()">隐藏</div>
    <div style="width:100px;height:100px;background-color:blue;float:left;"></div>
    </body>
    </html>
      

  3.   

    谢谢楼上的回答,不过要做成IFRAME的而不是DIV的,我用代码套了套基本上实现了,不过现在的问题就是怎么双击那个IFRAME也实现这个显示和隐藏的效果
      

  4.   

    双击哪个IFRAME?
    双击了半天一点反应都没有
    你说的是不是左边的页面双击后出现的搜索框?
    如果是那样下面的代码可以实现必须加入
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    否则不支持
    document.documentElement.scrollTop
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script>
    //显示层
    document.ondblclick=scollScreen;
    var timer;
    function scollScreen(){
    var currentLeft=document.getElementById("div1").style.left;
    currentLeft=parseInt(currentLeft.replace("px",""))+15;
    document.getElementById("div1").style.left=currentLeft+"px";
    if(currentLeft>=0){
    stopScollScreen();
    }else{
    timer=setTimeout("scollScreen();",15);
    }
    }function stopScollScreen(){
    clearInterval(timer);
    }//隐藏层
    document.onmousedown=hideDiv;function hideDiv(){
    document.getElementById("div1").style.left="-100px";//-100px和层的宽度一致
    }//随窗口滚动调整位置
    window.onscroll=duilian;function duilian(){
    document.getElementById("div1").style.top=(200+document.documentElement.scrollTop)+"px";
    }
    </script>
    </head>
    <body>
    <div id="div1" style="width:100px;height:100px;background-color:red;position:absolute;left:-100px;top:200px;float:left;"></div>
    随便找个地方双击,单击后隐藏
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    </body>
    </html>
      

  5.   

    就是拖动frameset时有些bug,看对不.左边的frame和右边的frame的table使用100%来控制大小index.htm<HTML>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script>
    var ocols;
    function $(Id){return document.getElementById(Id);}
    function ResizeFrame()
    {
      var FS=$("FrameSet");
      var cols=FS.cols.split(',');
      if(parseInt(cols[0])==0)SetCols("400,6,*",FS);
      else SetCols("0,6,*",FS);
    }
    function SetCols(cols,FS)
    {
      FS.cols=cols;
    }
    document.onmouseup=function()
    {
      setTimeout(SetState,10);
    }
    function SetState()
    {
      var os=ocols.split(",");
      var FS=$("FrameSet")
      var nos=FS.cols.split(",");
      if(os[0]==nos[0]) SetCols(parseInt(os[0])+parseInt(os[2])-parseInt(nos[2])+"%,6px,"+nos[2],FS);
      else SetCols(nos[0]+",6px,"+(parseInt(os[2])+parseInt(os[0])-parseInt(nos[0]))+"%",FS);
    }
    window.onerror=function(){return true;}
    </script>
    </head>
    <frameset id="FrameSet" cols="40%,6px,59%" frameborder="0" border="0" framespacing="0">
        <frame name="FrameLeft" src="left.htm" scrolling="no"  frameborder="0" border="0" framespacing="0"/>
        <frame name="FrameMiddle" src="middle.htm" scrolling="no" frameborder="0" border="0" framespacing="0"/>
        <frame name="FrameRight" src="right.htm" frameborder="0" border="0" framespacing="0"/>
    </frameset>left.htm
    <style>
    td{word-break:break-all}
    </style>
    <table width='100%' border='1'>
    <tr><td>TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1
    TDLeft
       1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1TD
    Left1TDLeft1</td></tr>
    <tr><td>TDLeft2TDLeft2TDLeft2TDLeft2TDLeft2TDLeft2TDLeft2TDLeft     2TDLeft2TDLeft2TDLeft2TDLeft2TDLeft2TDLeft2TDLeft2TDLeft2TDLe
    ft2TDLeft2TDLeft2</td></tr>
    <tr><td>TDLeft3TDLeft3TDLeft3TDLeft3TDLeft3TDLeft3TD
    Left3TDLeft      3TDLeft3TDLeft3TDLeft3TDLeft3TDLeft3TDLeft3TDLeft3TDLeft3TDLef 
    t3TDLeft3TDLeft3TDLeft3</td></tr>
    </table>middle.htm
    <HTML>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <BODY topmargin="0" leftmargin="0" bgcolor="#8D989A" style="cursor:e-resize">
    <TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0>
    <TBODY>
    <TR>
    <TD width="100%"></TD>
    <TD bgColor=#d0d0c8>
    <TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0 bgcolor='#D7D8DA' id="td1">
    <TBODY>
    <TR>
    <td height='50%' title="拖动以调整宽度" ></td>
    </TR>
    <TR>
    <TD height="96"><img onclick="parent.ResizeFrame()"  src="al_1.gif" border="0" id="ImgArrow" name="ImgArrow" width=5 alt='展开/关闭帖子列表' style="cursor:pointer"></TD>
    </TR>
    <TR>
    <td height='50%' title="拖动以调整宽度" ></td>
    </TR>
    </TBODY>
    </TABLE>
    </TD>
    </TR>
    </TBODY>
    </TABLE>
    </BODY>
    </HTML>
    <script>
    document.onmousedown=function(e)
    {
      e=e||event;
      var tag=e.srcElement||e.target;
      if(tag.tagName=="IMG"&&tag.src.indexOf("al_1.gif")!=-1)return;
      parent.ocols=parent.$("FrameSet").cols;
    }
    </script>right.htm
    <style>
    td{word-break:break-all}
    </style>
    <table width='100%' border='1'>
    <tr><td>TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft
    1TDLeft1TDLeft1TDL 
       eft1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1TDLeft1</td></tr>
    <tr><td>TDLeft2TDLeft2TDLeft2TDLeft2TDLeft2TDL
    eft2TDLeft2TDLef
    t2TDLeft2TDL      eft2TDLeft2TDLeft2TDLeft2TDLeft2TDLeft2TDLe
    ft2TDLeft2TDLeft2TDLeft2</td></tr>
    <tr><td>TDLeft3TDLeft3TDLeft3TDLeft3TDLeft3TD
    Left3TDLeft3TDLeft3TDLeft3TDL    eft3TDLeft3TDLeft3TDLeft3
    TDLeft3TDLeft3TDLeft3TDLeft3TDLeft3
    TDLeft3TDLeft3</td></tr>
    </table>
    <script>
    document.ondblclick=function()
    {
      parent.ResizeFrame()
    }
    </script>
      

  6.   

    谢谢楼上的大大,不过我的右FRAME里网页是要变化的,所以不能在右Frame里放JS代码,而右FRAME又必须实现双击的事件
      

  7.   

    那可以这样,在right的frame在onload时添加事件,不过注意不要跨域,要不出错
    <HTML>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script>
    var ocols;
    function $(Id){return document.getElementById(Id);}
    function ResizeFrame()
    {
      var FS=$("FrameSet");
      var cols=FS.cols.split(',');
      if(parseInt(cols[0])==0)SetCols("400,6,*",FS);
      else SetCols("0,6,*",FS);
    }
    function SetCols(cols,FS)
    {
      FS.cols=cols;
    }
    document.onmouseup=function()
    {
      setTimeout(SetState,10);
    }
    function SetState()
    {
      var os=ocols.split(",");
      var FS=$("FrameSet")
      var nos=FS.cols.split(",");
      if(os[0]==nos[0]) SetCols(parseInt(os[0])+parseInt(os[2])-parseInt(nos[2])+"%,6px,"+nos[2],FS);
      else SetCols(nos[0]+",6px,"+(parseInt(os[2])+parseInt(os[0])-parseInt(nos[0]))+"%",FS);
    }
    window.onerror=function(){return true;}
    function InitdblClick()//给right添加ondblclick事件
    {
      var doc;
      if(document.all)doc=frames["FrameRight"].document;
      else doc=$("FrameRight").contentWindow.document;
      doc.ondblclick=function(){ResizeFrame();}
    }
    </script>
    </head>
    <frameset id="FrameSet" cols="40%,6px,59%" frameborder="0" border="0" framespacing="0">
        <frame name="FrameLeft" src="left.htm" scrolling="no"  frameborder="0" border="0" framespacing="0"/>
        <frame name="FrameMiddle" src="middle.htm" scrolling="no" frameborder="0" border="0" framespacing="0"/>
    <!----onload实践----->
        <frame name="FrameRight" id="FrameRight" onload="InitdblClick()" src="right.htm" frameborder="0" border="0" framespacing="0"/>
    </frameset>