Javascript 在浏览器中刷新页面的方法
尽管互联网上有许多类似的话题,但并没有一个完整的答案 我想要什么: 禁用浏览器刷新 我所知道的: 据我所知,在浏览器刷新事件上挂起侦听器是不可能的。所以我必须在keydown事件上挂起侦听器,并阻止所有可能的页面重新加载变体 问题/我不知道的事 我无法想象所有可能的页面重载变体,可以忽略其中一个。例如 我可以查一下:Javascript 在浏览器中刷新页面的方法,javascript,backbone.js,javascript-events,Javascript,Backbone.js,Javascript Events,尽管互联网上有许多类似的话题,但并没有一个完整的答案 我想要什么: 禁用浏览器刷新 我所知道的: 据我所知,在浏览器刷新事件上挂起侦听器是不可能的。所以我必须在keydown事件上挂起侦听器,并阻止所有可能的页面重新加载变体 问题/我不知道的事 我无法想象所有可能的页面重载变体,可以忽略其中一个。例如 我可以查一下: event.keyCode==116//F5 event.keyCode==82&&event.ctrlKey//Ctrl+R 但同时也有Mac操作系统,用户可以使用Cmd+R
- event.keyCode==116//F5
- event.keyCode==82&&event.ctrlKey//Ctrl+R
可能是更好的主意吗?你不能真的禁用浏览器刷新。如果其他方法都不起作用,我可以单击地址栏旁边的刷新按钮,或者只需单击地址栏的末尾,然后按enter键即可重新加载页面——幸运的是,您无法阻止这一点
请尝试解决您真正的问题-为什么用户不按resfresh?如果他这样做了,会出什么问题?你怎么能解决这个问题?烦扰用户(这正是您在这里试图做的)从来都不是一个好的选择。我认为您可以在window.close事件中向用户显示通知,并显示一条自定义的相关消息,以便用户可以留在页面上,如果她愿意。为什么要阻止标准浏览器行为?“我想要的是:禁用浏览器刷新”-你不能。而是解决真正的问题。使刷新不会引起问题。单击页面刷新按钮如何?你不能停止,因为它在你的可控窗口之外…我需要阻止页面刷新,因为我使用SPA和Backbone.js。这意味着我应该阻止页面重新加载,或者发明一种方法在更新时将主干路由器重定向到特殊的URL。我不明白使用SPA或主干意味着需要阻止重新加载。通常情况下,在URL栏、localStorage或Cookie(或它们的一些组合)中使用片段(
#
)保存状态。