contents.htm:
function setCookie(name,value)
{
  var exp  = new Date();  exp.setTime(exp.getTime() + 60*1000);
  document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();
}
function getCookie(name)
{
  var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
  if(arr != null) return unescape(arr[2]); return null;
}
window.onbeforeunload = function()
{
  setCookie("top", document.body.scrollTop);
}
window.onload = function()
{
  var top = getCookie("top");
  if(top) document.body.scrollTop = top;
}

解决方案 »

  1.   

    其实主要可能还是你的逻辑没有对,如果你的Iframe不是随着页面变化而位置变化的话,框架应该可以固定的,你在链接中只进行子框架的页面更新不会影响到链接页面的。
      

  2.   

    梅花雪大侠,谢谢你。对不起,我在问题里没说清楚,其实我在contents.htm里采用了一种展开式菜单,即各菜单项单击展开,再单击就收起来。具体代码如下:
    <body>
      <span class="style2" style="color: #FFFFFF">
      <b class=Outline style1 id=Out1 style="cursor: hand; ">Menu1</b>
      </span>
    <br>
    <div id=Out1details style="display:None; position:relative; left:12;">
    <table width="150">
    <tr>
    <td>
    <u><a href=a.htm target=_parent>AAA</a></u><br>
    <u><a href=b.htm target=_parent>BBB</a></u><br>
    </td></tr>
    </table>
    </div>
    <br>  <span class="style2" style="color: #FFFFFF">
      <b class=Outline style1 id=Out2 style="cursor: hand; ">Menu2</b>
      </span>
    <br>
    <div id=Out2details style="display:None; position:relative; left:12;">
    <table width="150">
    <tr>
    <td>
    <u><a href=c.htm target=_parent>CCC</a></u><br>
    <u><a href=c.htm target=_parent>DDD</a></u><br>
    </td></tr>
    </table>
    </div>
    <br>  <span class="style2" style="color: #FFFFFF">
      <b class=Outline style1 id=Out3 style="cursor: hand; ">Menu3</b>
      </span>
    <br>
    <div id=Out3details style="display:None; position:relative; left:12;">
    <table width="150">
    <tr>
    <td>
    <u><a href=e.htm target=_parent>EEE</a></u><br>
    <u><a href=f.htm target=_parent>FFF</a></u><br>
    </td></tr>
    </table>
    </div>
    <br>  <span class="style2" style="color: #FFFFFF">
      <b class=Outline style1 id=Out4 style="cursor: hand; ">Menu4</b>
      </span>
    <br>
    <div id=Out4details style="display:None; position:relative; left:12;">
    <table width="150">
    <tr>
    <td>
    <u><a href=g.htm target=_parent>GGG</a></u><br>
    <u><a href=h.htm target=_parent>HHH</a></u><br>
    </td></tr>
    </table>
    </div>
    <br>
    <script language=JavaScript>
    function clickHandler() {
      var targetId, srcElement, targetElement;
      srcElement = window.event.srcElement;
      if (srcElement.className == "Outline") {
         targetId = srcElement.id + "details";
     if(targetId!="Out1details"){
     targetElement = document.all("Out1details");
     targetElement.style.display = "none";}
     if(targetId!="Out2details"){
     targetElement = document.all("Out2details");
     targetElement.style.display = "none";}
     if(targetId!="Out3details"){
     targetElement = document.all("Out3details");
     targetElement.style.display = "none";}
     if(targetId!="Out4details"){
     targetElement = document.all("Out4details");
     targetElement.style.display = "none";}
         targetElement = document.all(targetId);
         if (targetElement.style.display == "none") {
            targetElement.style.display = "";
         } else {
            targetElement.style.display = "none";
         }
     window.scroll(0,0);
      }
    }document.onclick = clickHandler;
    </script>可每次键入链接这个contents.htm页面内容就自动回到顶端,并且里面的菜单就自动收起来了,看不见自己刚才点击的是哪个链接。
    请问,有什么办法吗?谢谢各位!!!
      

  3.   

    若是这样的话, 用我上面的代码也行, 把点击的当前树节点记录到 cookie 里去, onload 的时候再设置回去, 不过总感觉不太好, 楼主你还是重新考虑一下的页面排布吧, 不要每次链接点击都刷新这个 contents.htm 了,你可以分成左右框架, 左边放 contents.htm , 点击链接的时候只刷新右边的框架, 就不会有这些问题了。
      

  4.   

    同意 xdspower()的观点,你把主次给搞反了。