【问题标题】:How to prevent double-refresh on frameset如何防止框架集上的双重刷新
【发布时间】:2012-01-19 20:51:23
【问题描述】:

我有一种情况,按 F5 或 CTRL+R 会导致框架集加载框架两次。它发生在本地主机上,但由于我刚刚为这个问题整理了一个示例并上传了它,我注意到它因浏览器而异。

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

我放在下面的测试用例有 2 个框架,其中一个是空的。当 frame1.html 加载时,frameset 然后设置 frame2 的 src,然后加载 frame2.html。两者都应该只提醒一次,但您会发现“frame2.html”并非如此。

浏览器行为:

  • Chrome16Safari5.1 在 localhost/live 上都按预期工作
  • FF9 在本地主机上翻倍,按预期工作
  • IE9 在 localhost/live 上加倍
  • 尚未测试其他/较旧的浏览器,但我预计会有些痛苦

我尝试清除框架集的 unload 事件上的 src 属性,希望它至少可以在执行双重操作然后加载 frame2.html 之前不加载任何内容,但即使这有效(它没有)它也是讨厌。

我的问题:

  1. 为什么会发生双重刷新,何时发生?
  2. 有没有办法防止双倍?

这是链接:http://codefinger.co.nz/public/frameset_test/frameset.html 以及 rar'd 文件:http://codefinger.co.nz/public/frameset_test/frameset_test.rar

【问题讨论】:

  • 抱歉,刚刚澄清了问题的第一部分。

标签: javascript html refresh frameset


【解决方案1】:

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

我监听框架集的window.unload 事件(YUI3.5),并完全移除双向上框架节点。双倍消失,一切正常。

在(本地主机和实时服务器)中成功测试:

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

不适用于:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 2019-11-18
    • 1970-01-01
    • 2023-03-03
    • 2012-09-25
    相关资源
    最近更新 更多