先讲一下流程:
监听F5事件,然后通过keycode判断。
reload iframe里面的页面,但是实际效果确实整个页面都刷新
最主要的一点:event.preventDefault();//阻止系统刷新。
下面贴出自己的代码:
父页面中的js
window.document.onkeydown = disableRefresh;
function disableRefresh(evt){
evt = (evt) ? evt : window.event
if (evt.keyCode) {
if(evt.keyCode == 116){
evt.preventDefault();//阻止系统刷新。
console.info(document.getElementById('iframepage'));//.contentWindow.location.reload(true);
var src= document.getElementById('iframepage').src;
document.getElementById('iframepage').src=src;
}
}
}
html:
<iframe src="/index" id="iframepage" name="iframepage" frameBorder=0
scrolling="auto" width="100%" onLoad="reinitIframeEND();"></iframe>
子页面中的js
window.document.onkeydown = childRefresh;
function childRefresh(evt){
var iframeSrc = parent.document.getElementById('iframepage').src;
evt = (evt) ? evt : window.event;
if (evt.keyCode) {
if(evt.keyCode == 116){
evt.preventDefault();//阻止系统刷新。
parent.document.getElementById('iframepage').src = iframeSrc;
}
}
}