javascript location.href onchange 事件监听器?

2023-12-22

我想在你离开页面时显示一条消息(不是烦人的警报,只是一些告诉你等待的html),在考虑它时我面临着某些困难:

  • 当用户按下 Stop 时 浏览器,取消导航离开 行动,我想要发送消息 离开。

  • 每当单击任何链接时,都会出现该消息。

  • 当单击的链接打开另一个选项卡时,它不应该捕获(忽略 _blank 目标)

话虽这么说,触发事件非常简单,只需类似

$(document).unload(function()
{
    // display message
});

问题是,如果用户取消,该消息不会消失。

一个可能的解决办法是:

$(window).unload(function()
{
    // display message

    setTimeout(function()
    {
        // hide message
    },5000);
});

但我想知道是否有一种更干净的方法,即当用户取消导航(或由于任何其他原因失败)时,我可以隐藏该消息。

编辑#2:

我只是注意到,使用上面的代码,在 FF 中,直到离开页面才会显示消息,此时如果用户按“停止”,他将收到 about:blank。如果他在此之前按“停止”,则永远不会显示该消息。这正是我想要的。

在 Internet Explorer 中,该消息永远不会显示,我假设这是因为 IE 处理内容的方式不同。我想知道 chrome 中会发生什么?


对于第一点:

当用户在浏览器中按“停止”取消导航离开操作时,我希望该消息消失。

I had 同样的问题 https://stackoverflow.com/questions/1776447/detect-when-user-clicks-link-but-aborts不久前,响亮的反应——也得到了我随后的研究的支持——是这是不可能的。一旦开始请求新页面,就不可能以编程方式可靠地“返回”。暂停确实可能是唯一的出路。

不过,另外两点应该相对简单:遍历每个链接(例如使用 jQuery),然后添加click打开确认窗口并返回的事件false这样原始的 href 就不会打开。仅针对内部链接执行此操作应该相对容易(检查target财产,如果是_blank,保留链接。)

处理已经存在的链接可能会变得困难click不过,事件以及导致不同页面的其他事件(例如表单提交)。

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

javascript location.href onchange 事件监听器? 的相关文章

随机推荐

  • 如何升级gtk2hsC2hs?

    我在尝试cabal install glib 0 12 3在我的 Ubuntu 11 10 下使用 cabal install 0 10 2 但是 它显示以下错误消息 setup The program gtk2hsC2hs version
  • 如何在 Microsoft Access 2010 中设置与 SQL Server 2008 的 ADODB 连接?

    我刚刚在笔记本电脑上安装了 SQL Server 2008 我还安装了 Microsoft Access 2010 使用 VBA 我尝试在 SQL Server 上创建到我自己的数据库的 ADODB 连接 但我无法找到正确的代码行 当我在下
  • Xcode 在创建机器人时无法单击“下一步”?

    我正在尝试为测试项目设置一个机器人 我有一台运行服务器应用程序的 mac mini 该服务器对本地网络和所有人都是可见的 共享方案后 我进入 Xcode 并创建一个机器人 问题是 我无法启用右下角的 下一步 按钮 因此 我无法继续创建机器人
  • CoreBluetooth 无法找到设备,但 iOS 可以

    我有一个蓝牙条形码扫描仪 其规格说明它是蓝牙 2 0 2 类 这很奇怪 因为我的 iPhone 5 iOS7 可以找到并连接它 我以为iOS只能连接BLE设备 但在我的应用程序中 我无法扫描该设备 我不知道这是否是因为它的蓝牙规格 我希望有
  • 在 Spray 中发送发布请求

    我需要使用以下命令发出一个简单的 HTTP 请求spray框架 我在他们的网站上找到了一些示例 但结果证明它们很复杂并且涉及 Akka 这对我来说不是必需的 此外 我需要能够填写请求的标头 例如X Application content t
  • R 中的 strsplit 与元字符

    我有大量数据 其中分隔符是反斜杠 我正在 R 中处理它 并且很难找到如何分割字符串 因为反斜杠是一个元字符 例如 一个字符串看起来像这样 1128 0019 XA5 E2R 366 00 15 我想把它分成 字符 但是当我运行 strspl
  • Python Pillow:制作透明度渐变

    我有在图像上添加渐变的代码 def st path gradient magnitude 2 im Image open path if im mode RGBA im im convert RGBA width height im siz
  • 如何使用以编程方式创建的按钮在 WPF MVVM 中创建 OnClick 命令?

    我正在编写一个 WPF 应用程序 它以编程方式创建一些按钮 如何为 ViewModel 中的按钮创建 OnClick 命令 我想添加一个命令来使用 ResetButton 清除所有文本框 new StackPanel Orientation
  • 如何在 Flask-restless 中返回“已存在”错误?

    我想做一些异常处理程序 我在 python 中使用 Flask restless 和 SQLAlchemy 的组合 我的问题 当我使用数据库中已存在的对象向 api 发送请求时 SQLAlchemy 显示异常 IntegrityError
  • MYSQL左连接来自多个表的COUNTS

    我想添加表示其他表中的计数的列 我有3张桌子 Messages MessageID User Message Topic 1 Tom Hi ball 2 John Hey book 3 Mike Sup book 4 Mike Ok boo
  • Websocket连接自动关闭?

    我是网络套接字编程的新手 我有以下 JavaScript 客户端代码 var connection new WebSocket ws localhost 8080 OmegaThings registerdevice connection
  • 输入字段在 Chrome 和 Firefox 中显示不同

    我在 Chrome 中进行了测试 显示正常 但在 Firefox 中 输入框比预期大 这是标记 div class form wrapper div
  • 绘制离屏 CALayer 内容的最快方法

    我正在寻找在 macOS 上绘制离屏 CALayer 内容 不需要 Alpha 的最快方法 请注意 这些示例不是线程化的 但重点是 以及为什么我不只是使用 CALayer setNeedsDisplay 因为我正在后台线程上进行此绘图 我原
  • itunes 上缺少本地化屏幕截图错误

    我已选择默认语言 澳大利亚英语 作为默认语言 当我提交二进制文件时 它显示为被拒绝的 红色图标 状态为 缺少本地化屏幕截图 该应用程序仅使用单一语言 我添加了屏幕截图 该应用程序仅适用于 iPhone 当我查看显示为的二进制信息时 本地化
  • 可以监控 STM 的争用级别吗?

    有没有办法轮询 Clojure 的 STM 事务是否正在重试 以及重试的速率是多少 您可以观察history count一个 ref 将表明存在争用 user gt def my ref ref 0 min history 1 user m
  • Servlet 会话超时

    我正在编写我的 Spring MVC Web 应用程序 我将会话时间设置为 10080 分钟 相当于 1 周 现在我想让用户每次打开浏览器时都保持登录状态 sessionService setcurrentUser myuser HttpS
  • 从 Android Studio 运行应用程序时,在 Gradle 任务 processManifest.doLast 中编辑 AndroidManifest.xml 无效

    我使用以下 Gradle 脚本在编译时对 AndroidManifest xml 进行一些修改 在这个例子中我想注入一个
  • TFS 团队构建日志单元测试结果

    我们正在使用 TFS 2010 Team Build 它会在构建过程中自动运行我们的单元测试 如果单击 查看日志 我可以看到运行的测试列表和每个测试结果 成功 失败 如果发生失败 我想查看测试结果输出 以便开发人员可以找出失败的原因是什么
  • 使用 extern 和 #include 头文件有什么区别?

    我开始质疑 extern 关键字的有用性 该关键字用于访问其他模块 其他文件中 中的变量 函数 当我们使用 include 预处理器导入带有变量 函数原型或函数 变量定义的头文件时 我们不是在做同样的事情吗 extern之所以需要 是因为它
  • javascript location.href onchange 事件监听器?

    我想在你离开页面时显示一条消息 不是烦人的警报 只是一些告诉你等待的html 在考虑它时我面临着某些困难 当用户按下 Stop 时 浏览器 取消导航离开 行动 我想要发送消息 离开 每当单击任何链接时 都会出现该消息 当单击的链接打开另一个