如何防止在框架集上进行双重刷新

时间:2012-01-19 20:51:24

标签: javascript html refresh frameset

我遇到一种情况,按F5或CTRL + R会导致框架集加载一次框架两次。它发生在localhost上,但是我刚刚把这个问题的例子放在一起并上传了,我注意到它因浏览器而异。

首次访问该链接或点击浏览器地址栏并按Enter键会根据需要执行“正常刷新”。

我在下面放在一起的测试用例有2帧,一个留空。当frame1.html加载时,框架集然后设置frame2的src,然后加载frame2.html。两者都应该只提醒一次,但你会发现'frame2.html'的情况并非如此。

行为 - 通过浏览器:

  • Chrome16 & Safari5.1 按预期运行localhost / live
  • FF9 在localhost上加倍,按预期方式工作
  • IE9 在localhost / live
  • 上加倍
  • 尚未测试其他/旧版浏览器,但我预计会有一些痛苦

我尝试清除frameset的unload事件中的src属性,希望它在执行double-up然后加载frame2.html之前至少加载任何东西,但即使它已经工作(它没有)它是讨厌。

我的问题:

  1. 为什么会发生双重刷新?确实发生了什么?
  2. 有没有办法防止双重上升?
  3. 以下是链接:http://codefinger.co.nz/public/frameset_test/frameset.html以及rar'd文件:http://codefinger.co.nz/public/frameset_test/frameset_test.rar

1 个答案:

答案 0 :(得分:0)

好的,缺乏解释让我很生气,但我确实找到了一种方法来停止这种默认的,不一致的行为。

我听了frameset的window.unload事件(YUI3.5),并完全删除了双向帧节点。双重消失,一切都显得正常。

在(localhost和live server)中成功测试:

  • Chrome 16.0.912
  • Firefox 3.6,9.0.1
  • IE 6,7,8& 9
  • Safari 5.1

不起作用:

  • Opera 11.61(我无法访问和操作框架集元素)

对于为什么首先发生框架集加载加倍的任何解释,我仍然会+1。