关闭选项卡时要求确认[关闭]

2024-06-20

当我在某些浏览器上关闭页面时,我希望出现一个消息框,并询问我是否真的要关闭页面,有两个按钮,如果我单击No那么这个标签就不会被关闭。

我怎样才能做到这一点?


您需要收听beforeunload https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload event.

这是一个启动示例:

window.onbeforeunload = function() {
    return "Hey, you're leaving the site. Bye!";
};

此消息将以确认对话框的形式显示。此消息将显示在右侧before客户端卸载页面。那可以是浏览器关闭,but这也可以是一个简单的导航操作,例如单击链接或在页面中提交表单!

您很可能还想将其关闭(只需设置为null)每当单击内部链接或提交内部表单时。也就是说,您不想用不直观的行为来惹恼最终用户。您可以通过收听来做到这一点click所需链接的事件和submit所需形式的事件。jQuery http://jquery.com在这里可能会有很大的帮助,因为它以跨浏览器兼容的方式做到这一点,这样你就不需要为此编写 >20 行 JS 代码:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    window.onbeforeunload = function() {
        return "You're leaving the site.";
    };
    $(document).ready(function() {
        $('a[rel!=ext]').click(function() { window.onbeforeunload = null; });
        $('form').submit(function() { window.onbeforeunload = null; });
    });
</script>

您只需为所有外部链接赋予事实上的标准属性rel="ext"表示这些是外部链接。

<a href="http://google.com" rel="ext">Google</a>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关闭选项卡时要求确认[关闭] 的相关文章

随机推荐

  • 单击一次,“您的 Web 浏览器设置不允许您运行未签名的应用程序。!

    我们正在尝试部署一个未签名的 clickonce 应用程序 对于某些用户来说 此操作会失败并出现以下错误 而对于其他用户来说则没有问题 这可能是某处的安全设置 但我们一直无法找到它 有关如何允许安装此应用程序的任何提示 禁止签名 PLATF
  • PowerShell 中的变量作用域

    PowerShell 的一个遗憾是函数和脚本块是动态作用域的 但另一件事让我感到惊讶的是 变量在内部作用域内表现为写时复制 array g function foo array h Write Host array array s Writ
  • 在主机和子docker之间共享图像

    我读了这篇文章http blog docker io 2013 09 docker can now run within docker http blog docker io 2013 09 docker can now run withi
  • 如何包含字符串标头?

    我正在尝试了解strings 但不同的来源告诉我要包含不同的标头 有人说用
  • 有没有办法将 AssertJ 断言与 Spring MVC 测试一起使用?

    我在项目中使用 AssertJ 一段时间了 最近我开始使用 Spring MVC Test 来测试 Spring MVC 控制器 但我不知道如何使用 AssertJ 我在网上看到的所有示例都使用 Hamcrest 和 Spring MVC
  • 对包含元组的元组进行排序[重复]

    这个问题在这里已经有答案了 我有以下元组 其中包含元组 MY TUPLE A Apple C Carrot B Banana 我想根据以下内容对这个元组进行排序second内部元组中包含的值 即 对 Apple Carrot Banana
  • R 中的字符串作为函数参数

    数据框chocolates列出了糖果的类型以及每种糖果的一组评级 ID sweetness filling crash snickers 0 67 0 55 0 40 milky way 0 81 0 53 0 56 我正在编写一个函数 它
  • 主干视图 DOM 元素已删除

    我一直在阅读有关 Backbone js 僵尸 或内存泄漏 问题的信息 基本上 当您不再需要该元素时 您必须从 DOM 中解除绑定并删除该元素 以确保所有事件也被删除 现在 我有一个包含几个容器的单页应用程序 div div div div
  • 将现有 VARCHAR 列与 Room 结合使用

    我正在尝试将现有的数据库与 Android Room 一起使用 但是 我的一个表有一个 VARCHAR 列 Room 似乎只支持 TEXT 不支持 VARCHAR 而且 sqlite 不允许修改列类型 那么 有没有办法使用Room中现有的带
  • 如何检查字符串是否为有效日期

    我有一个字符串 31 02 2010 并想检查它是否是有效日期 最好的方法是什么 我需要一个方法 如果字符串是有效日期 则返回 true 如果不是 则返回 false require date begin Date parse 31 02
  • 特征实施尺寸

    我知道特征和切片的大小是不确定的 即在编译时不可能知道它们的大小 例如任何类型都可以实现特征 但该类型可能无法调整大小 然而 这个示例代码是否意味着每个实现特征的类型Foo需要实施Sized too trait Foo Sized stru
  • Calendly 未在 Webflow 中预填写表单

    我在 Webflow 项目中使用 Calendly 并且它有效 不过 我想在 Calendly 中预先填写表格 这里有一个指南 https help calendly com hc en us articles 226766767 Pre
  • GitHub API 获取用户/组织总数

    Using GitHub API https developer github com v3 如何计算请求时的用户 组织总数 Users https developer github com v3 users and 组织机构 https
  • time_select 表单助手将新时间对象解释为 UTC,而不是配置的时区

    我遇到了对我来说似乎很简单的问题 但我无法弄清楚我做错了什么 在我的应用程序中 用户可以通过简单的 form for 添加他们的课程 他们可以输入课程讲座的开始时间和结束时间 如下所示 div class field Start Time
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • 服务层和存储库

    我使用 MVC 框架已经有一段时间了 我真的很喜欢如何分离关注点 我养成了让控制器做大量工作的坏习惯 所以我真的在寻求一些建议 当我第一次开始使用 MVC 时 我经常在数据库工作完成后让控制器对模型进行操作 我知道这很糟糕 所以将这项工作转
  • 如何并行运行多个Spark作业?

    一个 Spark 有一个 Oracle 查询 所以我必须并行运行多个作业 以便所有查询同时触发 如何并行运行多个作业 引用官方文档作业调度 http spark apache org docs latest job scheduling h
  • 我不断收到错误“关系 [TABLE] 不存在”

    我一直在尝试查询数据库中的两个表 在服务器资源管理器中 我可以看到两个表 甚至可以看到其中的列 我们将它们称为 Schema table1 和 Schema table2 其中 Schema 的第一个字母大写 我尝试运行以下查询 selec
  • 双击,怎么处理?

    我试图找出如何处理用鼠标左键 或任何 双击 但我找不到任何有关它的信息 有谁能够帮助我 我不想编写自己的双击处理程序 GLFW REPEAT 不适用于鼠标按钮 编写自己的双击处理程序有什么问题吗 只需节省鼠标单击发生的时间 例如和std c
  • 关闭选项卡时要求确认[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我在某些浏览器上关闭页面时 我希望出现一个消息框 并询问我是否真的要关闭页面 有两个按钮 如果我单击No那么这个标签就不会被关闭 我怎样