我读了这两个问题:
How can I detect browser tab refresh or close using javascript
和
How do I detect a page refresh using jquery?
建议绑定到'onbeforeunload'
并绑定F5
和Ctrl-R
按键,这是一个很好的建议。
但是,大多数浏览器的地址栏上都有一个刷新按钮,如Chrome中所示:
问题是:是否可以检测并绑定浏览器地址栏刷新按钮的刷新事件?
答案 0 :(得分:1)
通过将onbeforeunload
绑定到window
,就像这个window.onbeforeunload
一样,它应该在大多数浏览器中触发。检查这个fiddle。它似乎在IOS设备上不受支持。
对于IOS,Apple文档建议使用pagehide
查看Handling Events上的apple页面。
加载和卸载事件可能无法按预期进行后退和前进优化。请改用pageshow和pagehide事件。
请记住,这也将触发远离页面的所有其他类型的导航。如关闭,标签关闭,后退/前进导航,链接导航和地址栏导航
检查浏览器是否正在重新加载而不是离开页面导航我非常自信是不可能的,因为安全/隐私原因无法为您提供目标网址。您可以通过使用它来消除链接按下,这是触发onbeforeunload
时的一个条件。
编辑:如果您需要检查页面是否已重新加载,您可以使用sessionvariables或cookie来存储用户之前已经打开过该页面的内容。