【问题标题】:How can I prevent webpage reloading when a user clicks on the address bar enter using JQuery or JS当用户点击地址栏输入使用 JQuery 或 JS 时,如何防止网页重新加载
【发布时间】:2021-01-01 22:05:25
【问题描述】:

当用户在地址栏上按 Enter 键时,我会阻止网页重新加载。在 Google Chrome 中使用 JQuerys e.preventDefault() 方法在 beforeunload 方法中不起作用。一般来说,这可以用 JQuery 或 JS 来实现这个目标,还是我需要另一种技术?如果可能的话,有人可以帮我解决这个问题吗?

【问题讨论】:

  • 你可以在这里找到答案https://stackoverflow.com/questions/3527041/prevent-any-form-of-page-refresh-using-jquery-javascript
  • 我试过这个 $(window).on('beforeunload', function(event) { ... });但它不起作用。我是否需要返回一些东西,因为我的代码中不需要这个。我也在这里尝试过,但它不起作用:developer.mozilla.org/en-US/docs/Web/API/Window/….

标签: javascript jquery


【解决方案1】:

你根本做不到。无法从 JavaScript 处理地址栏本身。您只能添加确认对话框。

【讨论】:

  • 我应该应用什么技术(框架、库等)来使其正常工作?
  • 我尝试在 beforeunload 方法中添加一个确认对话框,但没有显示该对话框。只有这个方法被打印在浏览器的 devtools 中:Blocked confirm('LEAVING') during beforeunload.
【解决方案2】:

简答:你不能。

这样想,当用户在address bar 中点击回车时,用户正在输入一个 URL 并试图访问该 URL,并且它仅由浏览器处理。您可以(并且应该)不阻止用户离开页面。最重要的是,您可以在离开现有页面之前通知用户。

如果您这样做是为了优化性能,请考虑缓存静态文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 2017-12-14
    • 2015-08-10
    • 1970-01-01
    • 2022-11-13
    • 2011-10-05
    • 2012-08-07
    • 2013-03-13
    相关资源
    最近更新 更多