javascript - 如何通过javascript捕获浏览器的事件

标签 javascript events browser

我想知道有什么方法可以让我们知道浏览器的事件..比如:通过 javascript 点击后退按钮、前进按钮、刷新按钮。

最佳答案

这些特定的浏览器事件不可用,因为它很容易受到严重的隐私侵犯。隐私是浏览器 vendor 视为神圣的东西,也是一个关键的卖点(众所周知)。所有浏览器都允许您知道用户何时进入或离开您的页面,Kamui 指出了技术细节。

在同一站点内,可以使用 cookie 和 javascript 实现某些浏览器事件跟踪。例如跟踪用户是否点击超链接并将其标记为 forward 事件,当用户离开页面而不点击超链接时,它可能是以下事件之一:

  • 浏览器网址输入
  • 后退 Action
  • javascript location.href 替换

当您完全控制所有 javascript 时,也可以跟踪 location.href 替换,只需使用带有跟踪代码的辅助方法而不是直接更改 location.href。

剩下浏览器 url 输入返回操作。使用 cookie 和请求 header (获取引荐来源网址),有可能接近找出 forwardback 事件,虽然不是 100%,但从实用的 Angular 来说,99% 确定足够好。

使用请求 header (引荐来源网址)很容易确定 refresh 事件,如果当前 url 与引荐来源网址匹配,则这是一个 refresh 事件。

现在我不提供任何代码或明确的解决方案,但我概述了您可以做些什么来跟踪 backforwardrefresh单域上下文。这不会是一种快速简便的实现方式,据我所知,目前还没有任何框架可以可靠地跟踪浏览器事件,甚至接近我上面描述的内容。

实现类似功能的更常见/惰性技术是创建单页 应用程序,有许多可用的框架。只需谷歌 单页应用程序框架,但这是一个相当繁重的解决方案,还有其他我现在不会讨论的含义。

关于javascript - 如何通过javascript捕获浏览器的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8077657/

相关文章:

javascript - 如何在嵌套对象数组中获取 RxJs Observable 的值来解析?

Java Applet 导致 .NET Webbrowsercontrol 崩溃

javascript - 带行号的 typescript 调试

html - 为什么有些浏览器使用错误的字体(显然是随机的)呈现这个 unicode 字符?

javascript - 当activex与flash播放器位于同一页面时,无法调用activex方法

javascript - 检测 AJAX 帖子的成功或失败

javascript - 从窗口中心向右打开窗口一半大小的面板

iphone - 当有人隐藏/显示选项卡栏时是否有任何选项卡栏事件用于通知?

javascript - 获取在 HTML 按钮 OnClick 上触发的 jQuery 函数

c# - 调用任何方法时 "=>"运算符和 {} 有什么区别?