最近在做项目过程中,做后台管理模块的时需要在F5刷新页面的时候,只刷新iframe中内容,在网上找到解决方法是通过监听F5按下事件实现的,代码如下:
var check=function(e){ e=e||window.event; //alert(e.which||e.keyCode); if((e.which||e.keyCode)==116){ if(e.preventDefault){ e.preventDefault(); window.frames["mainFrame"].location.reload(); } else{ event.keyCode = 0; e.returnValue=false; window.frames["mainFrame"].location.reload(); } } } if(document.addEventListener){ document.addEventListener("keydown",check,false); } else{ document.attachEvent("onkeydown",check); }
把此代码放在使用iframe的页面,当事件是在主页面触发的时候可以实现,但是事件是在iframe中触发的时候,不起作用。
因此作如下处理,问题解决:
在iframe页面中同样一如以上代码,稍作修改即可,代码如下:
var check=function(e){ e=e||window.event; //alert(e.which||e.keyCode); if((e.which||e.keyCode)==116){ if(e.preventDefault){ e.preventDefault(); window.location.reload(); } else{ event.keyCode = 0; e.returnValue=false; window.location.reload(); } } } if(document.addEventListener){ document.addEventListener("keydown",check,false); } else{ document.attachEvent("onkeydown",check); }