【问题标题】:Ways to refresh a page in browser [closed]在浏览器中刷新页面的方法[关闭]
【发布时间】:2013-10-24 10:27:54
【问题描述】:

尽管网上有很多类似的话题,但没有一个完整的答案。

我想要什么:

禁用浏览器刷新。

我所知道的:

据我所知,不可能在浏览器刷新事件上挂起侦听器。所以我必须在 keydown 事件上挂起监听器并阻止所有可能的页面重新加载变体。

问题/我不知道的事情

我无法想象页面重新加载的所有可能变体,并且可以忽略其中一个。例如, 我可以检查:

  • event.keyCode == 116 //F5
  • event.keyCode == 82 && event.ctrlKey // Ctrl + R

但同时有Mac操作系统,用户可以用Cmd+R组合重新加载页面。

问题/请求:

请提供完整的页面重新加载方法列表。

可能是更好的想法?

【问题讨论】:

  • 你为什么要阻止标准浏览器行为?
  • “我想要的:禁用浏览器刷新”——你不能。而是解决真正的问题。让刷新不会造成问题。
  • 点击页面刷新按钮怎么样?你无法阻止它,因为它在你的可控窗口之外......
  • 我需要阻止页面刷新,因为我使用 SPA 和 Backbone.js。这意味着我应该阻止页面重新加载或发明一种方法如何将骨干网的路由器重定向到更新时的特殊 URL
  • 我不明白使用 SPA 或 Backbone 意味着需要阻止重新加载。通常状态是通过 URL 栏中的片段 (#)、localStorage 或 cookie(或它们的某种组合)来保存的。

标签: javascript backbone.js javascript-events


【解决方案1】:

您不能真正禁用浏览器刷新。如果没有其他方法,我单击地址栏旁边的刷新按钮,或者只需单击地址栏的末尾并按回车键重新加载页面 - 幸运的是你无法阻止它。

请尝试解决您真正的问题 - 为什么用户不应该按 resfresh?如果他这样做会出什么问题?你怎么能解决这个问题?惹恼用户(这就是你在这里想要做的)绝不是一个好的选择。

【讨论】:

    【解决方案2】:

    我认为您可以在 window.close 事件中使用自定义相关消息向用户显示通知,以便用户可以根据需要留在页面上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 2021-01-13
      • 2021-04-05
      相关资源
      最近更新 更多