问题描述:
一个页面嵌套了一个iframe页面,当这个页面提交后再次跳转到本页面时,原本iframe内的页面应该刷新数据的,结果在ie下面却没刷新(FF下没问题),必须手动F5或者新开一个浏览器标签页浏览才能刷新,否则在本页面的浏览器上按回车是没用的。
原因分析:是由于iframe缓存机制引发的问题。
解决方法:
复制代码 代码示例:
<script type="text/
javascript">
function refresh(e){
var tempUrl = e.href;
if(tempUrl.indexOf('?') != -1){
tempUrl = tempUrl.subString(0, tempUrl.indexOf('?'));
}
e.href = e.href + "?random=" + Math.floor(Math.random()*100000);
}
</script>
例如 iframe 名位content3
则超链接要写成这样:
复制代码 代码示例:
<a href="******" target="content3" onclick="refresh(this)" >test</a>
通过请求多加一个值为随机数的参数,这样浏览器认为每次请求的页面都是新的而保证了iframe页面每次都是重新加载的。
如果有需要参数,可以这样:
复制代码 代码示例:
<script type="text/javascript">
function refresh(e, param){
var tempUrl = e.href;
if(tempUrl.indexOf('?') != -1){
tempUrl = tempUrl.subString(0, tempUrl.indexOf('?'));
}
e.href = e.href + "?random=" + Math.floor(Math.random()*100000) +''+ param;
}
</script>
例如 iframe 名位content3
则超链接写成这样:
复制代码 代码示例:
<a href="******" target="content3" onclick="refresh(this, '&vtime=2012-11-11')" >test</a>
有了以上的方法,不用再担心Ie中iframe内容无法刷新了,遇到类似的问题,可以参考下这里的方法哦。