龙空技术网

JavaScript监听浏览器关闭及刷新事件beforeunload

麦冬会开花的呀 98

前言:

如今我们对“js监听页面后退”大概比较珍视,姐妹们都需要知道一些“js监听页面后退”的相关文章。那么小编同时在网上网罗了一些对于“js监听页面后退””的相关内容,希望我们能喜欢,我们快快来学习一下吧!

JavaScript 代码添加了一个 beforeunload 事件监听器,提示用户在关闭标签页或浏览器窗口时确认离开,尝试关闭这个标签或浏览器窗口,你会看到提示消息。

写在前面,谷歌浏览器下可能会浏览器安全策略当做恶意弹窗拒绝执行,可以留意下浏览器动态。另外自定义的文案可能不能展示,浏览器会使用默认的弹窗文案。

代码示例如下:很简单的demo,请拿走吧。

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Before Unload Example</title>    <script>        window.addEventListener('beforeunload', function (e) {            var confirmationMessage = '你确定要离开这个页面吗?';            // 标准的处理方式            e.preventDefault();            // 设置兼容旧版本的浏览器            e.returnValue = confirmationMessage;            return confirmationMessage;        });    </script></head><body>    <h1>Before Unload Example</h1>    <p>尝试关闭这个标签或浏览器窗口,你会看到提示消息。</p></body></html>

关键代码示意:

window.addEventListener('beforeunload', function (e) { ... });:为 beforeunload 事件添加一个监听器,触发时会执行其中的函数。e.preventDefault();:调用 preventDefault 方法,这是现代浏览器处理 beforeunload 事件的标准方法。e.returnValue = confirmationMessage;:设置 returnValue 属性,这在某些浏览器中是必须的。return confirmationMessage;:返回消息,这对于一些浏览器也是必需的,以确保提示消息能够显示。

这段代码做了一些兼容,适配多数浏览器,可以确保大多数情况下都能正确提示用户。

调试效果:

谷歌浏览器-挽留弹窗

谷歌浏览器-挽留弹窗

火狐浏览器-挽留弹窗

火狐浏览器-挽留弹窗

标签: #js监听页面后退