框架页面,左侧为导航,右侧为内容,点击左侧,右侧内容替换,F5后,右侧Frame如何能够保持原来导航过去的页面呢?

坚果壳不是硬壳 2014-02-19 10:25:38
如题,目前屏蔽了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);
}

}
}
...全文
312 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
teemai 2014-02-19
  • 打赏
  • 举报
回复
引用 4 楼 u012895467 的回复:
[quote=引用 2 楼 huxiweng 的回复:] f5是浏览器事件,不可能刷新一部分,你可以将左边的当前的数据缓存一下
那是不是一般的做法就是类似于CSDN论坛,加个刷新按钮,手动手动刷新当前页?[/quote] 是的
  • 打赏
  • 举报
回复
引用 2 楼 huxiweng 的回复:
f5是浏览器事件,不可能刷新一部分,你可以将左边的当前的数据缓存一下
那是不是一般的做法就是类似于CSDN论坛,加个刷新按钮,手动手动刷新当前页?
  • 打赏
  • 举报
回复
引用 1 楼 Test_LD 的回复:
这个你可以看下csdn论坛,你可以选个导航,刷下试试
我感觉csdn f5刷新是刷新了整个页面,板块上面发帖旁边的刷新按钮的确只是刷新了当前选中的板块页面,<a href="javascript:void(0)" onclick="window.location.reload()" class="btn_2"><span>刷新</span></a>, 我是想,是不是能够不加这个按钮,直接F5实现这个效果
teemai 2014-02-19
  • 打赏
  • 举报
回复
f5是浏览器事件,不可能刷新一部分,你可以将左边的当前的数据缓存一下
Test_LD 2014-02-19
  • 打赏
  • 举报
回复
这个你可以看下csdn论坛,你可以选个导航,刷下试试

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧