首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当window.onbeforeunload返回false时,Safari将保持“加载”

当window.onbeforeunload返回false时,Safari将保持“加载”
EN

Stack Overflow用户
提问于 2012-02-22 08:21:42
回答 2查看 2.2K关注 0票数 5

以下要点:https://gist.github.com/1876791 (借用自这个问题中的演示)是js中使用window.onbeforeunload的一个非常简单的示例。

我们遇到的问题如下(使用Safari5.1.3,而不是最新的Chrome ):

  1. 访问此页面:https://web.archive.org/web/20211028110528/http://www.4guysfromrolla.com/demos/OnBeforeUnloadDemo1.htm
  2. 单击其中一个链接,您将收到一个通知,询问您是否真的想离开此页面。
  3. 点击“待在页面上”
  4. 使用cmd-R重新加载页面。如果你真的想离开这一页,你会被问到另一次。
  5. 点击“待在页面上”。
  6. Safari保持在“加载”状态,显示进度条,就好像要加载下一页一样。

这是Safari的窃听器吗?有办法解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-04 18:33:43

即使在跳过OP的步骤2和步骤3时,我仍然能够重现这个问题。任何形式的重新加载都显示了这个问题。复制的极简步骤:

  1. 访问正在讨论的那一页
  2. 重装子弹。
  3. 点击“待在页面上”按钮。

加载过程是在重新加载击中并停留之后视觉上进行的,所以整个生命周期的确认对话框(显然是为了传达“悬崖峭壁边缘”-type成熟的情况):

  • 当对话框用“停留在页面上”按钮被取消时,它会留下停止的X符号,加载进度仍然保持在10%左右的位置。
  • 此“加载”不能以任何方式(键盘、按钮、脚本)取消。
  • Web检查器中的“网络”选项卡断言没有发生加载。

这看起来真的像一个Webkit/Safari用户界面错误-它看起来没有脱离进度栏停留在页面上的条件。最好是向Webkit团队报告,或者,由于您在Safari中体验到了这一点,也许狩猎队会更好。

票数 2
EN

Stack Overflow用户

发布于 2012-02-28 17:32:23

请参阅此页-> https://developer.mozilla.org/en/DOM/window.onbeforeunload

你必须处理这件事。页面上的示例运行良好。以下是代码:

代码语言:javascript
复制
window.onbeforeunload = function (e) {
  e = e || window.event;

  // For IE and Firefox prior to version 4
  if (e) {
    e.returnValue = 'Any string';
  }

  // For Safari
  return 'Any string';
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9391317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档