一聚教程网:一个值得你收藏的教程网站

热门教程

JS页面刷新当前页面的一些研究

时间:2022-06-25 15:19:36 编辑:袖梨 来源:一聚教程网

毫不犹豫的使用了以下JS代码

 代码如下 复制代码

parent.window.location.reload();

解释下为什么要parent,因为交互操作是在页面提交表单到页面一个隐藏iframe,交互完成后需求刷新当前页面,所以用parent,调用回当前的页面来刷新。

逻辑上没什么问题,确实使用起来也实现了页面刷新。

后来一次无意之中,用FF来执行上面的操作(之前的开发一直是用chrome,我的主浏览器也是chrome),出现了下面一幕


但是chrome就没这问题。这种提示,一般是因为有post过去的数据页面重新刷新才会出现的,但是我刷新当前页,为什么会有数据post呢,让我相当郁闷。

后来百度了一下,发现window.location.reload()这种方法被很多人诟病,原因是当window.location.reload()刷新当前页时,页面里面的iframe也会一并刷新,而FF是会记录iframe曾经打开过的页面的,所以我刷新当前页时,相当于把我刚才提交到iframe的那个处理页在iframe里面又执行一次,故出现上面的情况。

唉,看来又是一个浏览器兼容的hack,真不知说FF强大还是有毛病好......记录iframe页面干嘛!

这里有个DEMO来测试FF下用window.location.reload()刷新当前页是会让iframe也一起刷新的。

当你每次都点重新发送的话,FF将会不断alert和不断弹出这个提示,可以说是死循环...

于是没有办法阿,只能找方法解决呗,网上有解决方案是

 

 代码如下 复制代码
parent.window.location.href = parent.window.location.href;


但如果当前页面有锚点的话,这个方法行不通(因为url有锚点的话,是不会刷新的,不懂的话自己扫盲吧)

于是我把上面方法改进了,写成

下面是PHP代码:

 代码如下 复制代码


echo "";


把referer当做刷新的url。因为都是提交处理页到隐藏iframe,所以referer肯定是当前页不会错;取referer的话,因为不会取到锚点所以实现刷新功能也没有问题。


刷新页面的几种方法:

 代码如下 复制代码

1    history.go(0)
2    location.reload()
3    location=location
4    location.assign(location)
5    document.execCommand('Refresh')
6    window.navigate(location)
7    location.replace(location)
8    document.URL=location.href

自动刷新页面的方法:
1.页面自动刷新:把如下代码加入区域中

其中20指每隔20秒刷新一次页面.

2.页面自动跳转:把如下代码加入区域中

其中20指隔20秒后跳转到http://www.wyxg.com/页面

3.页面自动刷新js版

ASP.NET如何输出刷新父窗口脚本语句
1.   this.response.write(""); 

2.   this.response.write("");  

3.   Response.Write("")


JS刷新框架的脚本语句

//如何刷新包含该框架的页面用  
  

//子窗口刷新父窗口

( 或 刷新   )
//如何刷新另一个框架的页面用  

如果想关闭窗口时刷新或者想开窗时刷新的话,在中调用以下语句即可。
开窗时刷新
关闭时刷新

热门栏目