IE浏览器中iframe不刷新的解决方法

发布时间:2019-12-02编辑:脚本学堂
在IE浏览器中,遇到了iframe不能刷新的问题,应该如何解决呢?有遇到类似问题的朋友,可以参考下本文给出的方法。

问题描述:
一个页面嵌套了一个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内容无法刷新了,遇到类似的问题,可以参考下这里的方法哦。