毫不犹豫的使用了以下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代码:
| 代码如下 | 复制代码 |
|
|
|
把referer当做刷新的url。因为都是提交处理页到隐藏iframe,所以referer肯定是当前页不会错;取referer的话,因为不会取到锚点所以实现刷新功能也没有问题。
刷新页面的几种方法:
| 代码如下 | 复制代码 |
|
1 history.go(0) 自动刷新页面的方法: 其中20指每隔20秒刷新一次页面. 2.页面自动跳转:把如下代码加入 区域中其中20指隔20秒后跳转到http://www.w**y*xg.com/页面 3.页面自动刷新js版 ASP.NET如何输出刷新父窗口脚本语句 2. this.response.write(""); 3. Response.Write("")
//如何刷新包含该框架的页面用 //子窗口刷新父窗口 如果想关闭窗口时刷新或者想开窗时刷新的话,在 中调用以下语句即可。开窗时刷新 关闭时刷新 |
|
模拟极限越野
模拟极限越野开着大巴在各种奇葩路况里送乘客。山路弯道多得让人
模拟火车
模拟火车让你当回真正的火车司机,得先学会看信号灯、操作控制杆
可口的披萨美味的披萨
可口的披萨美味的披萨带您体验经营一家披萨店的乐趣。游戏画风温
定制虚拟偶像最新版
定制虚拟偶像最新版是一款超级经典有趣的日本模拟装扮类型的手游
病娇模拟器手机版正版(yandere simulator)
病娇模拟器最新版手游是一款萌妹二次元模拟游戏,玩家在游戏中可