【发布时间】: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