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

时间:2011-11-10 09:52:32

标签: javascript events browser

我想知道有没有什么办法可以让我们知道浏览器的事件..比如:单击BACK按钮,FORWARD按钮,按jref刷新按钮。

3 个答案:

答案 0 :(得分:5)

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

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

  • 浏览器网址输入
  • 回复行动
  • javascript location.href replace

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

留下browser url inputback action。使用Cookie和请求标头(获取引荐来源)可以近距离查找forwardback事件,但不是100%,但实际上,99%确定已经足够了。

使用请求标头(引荐来源)轻松找出refresh事件,如果当前网址与引荐人匹配,那么它就是refresh事件。

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

实现类似功能的更常见/懒惰的技术是创建一个single page应用程序,其中有许多可用的框架。只是谷歌single page app framework,但这是一个非常重要的解决方案,其他影响我现在还没有进入。

答案 1 :(得分:1)

您无法 捕获 (例如,当用户按下“返回”按钮时运行一段代码),但是,您可以使用以下方式在历史记录中指导您的网页:< / p>

More about JS History object.

答案 2 :(得分:1)

正如@sarfraz所说,您无法捕获后退和前进按钮点击,但您可以调用

 window.onbeforeunload = function(){alert("you just tried to leave the page");};

当单击后退/前进/刷新按钮执行操作时应该触发,不幸的是你无法判断它们是返回还是前进。请注意,在尝试退出页面时,请不要提醒消息它真的很烦人。

修改 如果你有它,你也可以在jQuery中执行此操作

 $(window).unload( function () { alert("Bye now!"); } );