日期:2014-05-17  浏览次数:20979 次

框架页面,左侧为导航,右侧为内容,点击左侧,右侧内容替换,F5后,右侧Frame如何能够保持原来导航过去的页面呢?
如题,目前屏蔽了f5刷新,但是刷新之后,mainFrame还是会重新加载导航初始页面,而不是刷新指点选择的页面,求解!

框架代码:
<frameset rows="64,9*,1*"  frameborder="NO" border="0" framespacing="0">
    <frame src="<%-- ${pageContext.request.contextPath } --%>toMainTop" noresize="noresize" frameborder="NO" name="topFrame" scrolling="no" marginwidth="0" marginheight="0" target="mainFrame" />
    <frameset cols="200,*" rows="100%" id="frame">
        <frame src="toMainLeft" name="leftFrame" id="leftFrame" noresize="noresize" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" target="mainFrame" />
        <frame src="toMainRight" name="mainFrame" id="mainFrame" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" target="_self" />
    </frameset>
    <frame src="toMainButtom" name="buttomFrame" noresize="noresize" marginwidth="0" marginheight="0" frameborder="no" scrolling="no" target="mainFrame"/>
</frameset>

屏蔽刷新的js代码
    //按下F5时,只刷新mainFrame,兼容IE、FF
    function myKeyDown(e) {
     var ev = e ? e:event;
     if(window.addEventListener) {
     if(ev.keyCode == 116) { //F5的键盘常用ASCII码为116
     parent.frames['mainFrame'].location.reload();
     ev.preventDefault();
     return false;
     }
     } else {
     if(ev.keyCode==116) {
     ev.keyCode=0;
     ev.returnValue=false;
     parent.frames('mainFrame').location.reload();
     return false;
     }
     }
    }
    
  //给每个frame都绑定onkeydown事件?
  window.onload = function() {
  document.onkeydown = mykeyDown;
  for(var i=0;i<frames.length;i++) {
  if(typeof document.addEventListener != "undefined") {
  frames[i].document.addEventListener("keydown",myKeyDown,true);
  } else {
  frames[i].document.attachEvent("onkeydown", myKeyDown);
  }
  
  }
  }

------解决方案--------------------
这个你可以看下csdn论坛,你可以选个导航,刷下试试
------解决方案--------------------
f5是浏览器事件,不可能刷新一部分,你可以将左边的当前的数据缓存一下