网站首页 > 知识剖析 正文
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;:返回消息,这对于一些浏览器也是必需的,以确保提示消息能够显示。
这段代码做了一些兼容,适配多数浏览器,可以确保大多数情况下都能正确提示用户。
调试效果:
- 谷歌浏览器-挽留弹窗
- 火狐浏览器-挽留弹窗
- 上一篇: html+css基础入门教程篇之伪元素
- 下一篇: 「Web前端开发进阶篇」CSS优先级
猜你喜欢
- 2024-12-01 将微前端做到极致-无界方案
- 2024-12-01 html原始字符及其用法
- 2024-12-01 初识CSS——浮动
- 2024-12-01 如何使用CSS计数器自动为元素进行编排
- 2024-12-01 css 渐变跟随鼠标光标按钮动画
- 2024-12-01 简析JS中Document与CSS
- 2024-12-01 css篇——css实现三角形
- 2024-12-01 你未必知道的49个CSS知识点
- 2024-12-01 CSS 面试题:CSS的权重与优先级
- 2024-12-01 CSS容易忘记的知识点(上)
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)