检测浏览器或标签页关闭

新手上路,请多包涵

是否有任何跨浏览器 JavaScript/jQuery 代码来检测浏览器或浏览器选项卡是否正在关闭,但不是由于单击了链接?

原文由 cometta 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

如果我理解正确,您想知道选项卡/窗口何时有效关闭。好吧,AFAIK 在 JavaScript 中检测到这一点的唯一方法是使用 onunloadonbeforeunload 事件。

不幸的是(或幸运的是?),当您通过链接或浏览器的后退按钮离开站点时,也会触发这些事件。所以这是我能给出的最好的答案,我认为你不能在 JavaScript 中检测到纯 close 。如果我在这里错了,请纠正我。

原文由 jAndy 发布,翻译遵循 CC BY-SA 4.0 许可协议

来自 MDN 文档

由于某些原因,基于 Webkit 的浏览器不遵循对话框的规范。一个几乎交叉工作的例子与下面的例子很接近。

 window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\o/";

  (e || window.event).returnValue = confirmationMessage; //Gecko + IE
  return confirmationMessage;                            //Webkit, Safari, Chrome
});

此示例用于处理所有浏览器。

原文由 mohamed-ibrahim 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题