【问题标题】:Detecting all possible cases of page refresh检测所有可能的页面刷新情况
【发布时间】:2016-08-07 02:03:51
【问题描述】:

我看了这两个问题:

How can I detect browser tab refresh or close using javascript

How do I detect a page refresh using jquery?

建议绑定到'onbeforeunload' 并绑定到F5Ctrl-R 按键,这是个好建议。

但是,大多数浏览器的地址栏上都有一个刷新按钮,就像 Chrome 中的这样:

问题是:是否可以检测并绑定浏览器地址栏刷新按钮的刷新事件?

【问题讨论】:

  • onbeforeunload 应在按下刷新按钮(或在地址栏按 Enter)时触发。
  • 如果您有一个不是由F5Ctrl-5 触发的beforeunload 事件,则很有可能是通过您提到的重新加载按钮触发的。

标签: javascript jquery browser


【解决方案1】:

通过将onbeforeunload 绑定到window 就像这个window.onbeforeunload 它应该在大多数浏览器中触发。检查这个fiddle。 IOS设备似乎不支持。

对于 IOS 苹果文档建议使用pagehide,请参阅Handling Events 上的苹果页面。

加载和卸载事件可能无法按预期进行向后和向前优化。请改用 pageshow 和 pagehide 事件。

请记住,这也会触发所有其他类型的远离页面的导航。如关闭、标签关闭、后退/前进导航、链接导航和地址栏导航

由于安全/隐私原因无法为您提供目标网址,因此无法检查浏览器是否正在重新加载而不是离开我非常有信心的页面。您可以通过在触发onbeforeunload 时使用它来消除链接压力。

编辑:如果您需要检查页面是否已重新加载,您可以使用 sessionvariables 或 cookie 来存储用户之前已经打开过一次页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-01
    • 2011-02-23
    • 2017-05-11
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    相关资源
    最近更新 更多