2009-10-28 69 views
6

我一直在处理一个JavaScript存在的问题,包括跟踪用户点击链接时的情况(如果您好奇,这里是:Why does using target="_blank" cause Javascript to fail?)。onMousedown vs onClick的下滑?

我发现我可以通过跟踪onMousedown事件而不是onClick事件来解决问题。

我很好奇这种方法的缺点。

  1. 如果用户点击向下链接,然后移动鼠标离开链接释放它,那么该事件将被记录,即使用户没有访问过的链接
  2. 前:我能想到的那些
  3. 如果用户使用Tab键浏览器焦点移到链接,然后按下回车键,点击就不会被记录

这些都是常见的都不是,所以我不是非常担心它们。

我有什么缺点吗?

回答

6

还有一个:mousedown也捕获右/中点击。

但是,由于你的两个原因,我会坚持onclick。我知道很多使用键盘导航的人。尤其是FF中的search-and-gotolink(/搜索后跟enter键去链接)。

但是,如果这两个对你来说不是问题,我认为右/中点击不会太。

我想跟踪所有谁遵循该链接的用户的方式是相当有难度的 - 用户可以点击右键,然后点击新标签/新窗口上...

+0

我与你的讯息同意,但它困扰我认为Google的搜索页面使用onmousedown而不是onclick来跟踪点击次数,这表明他们处理这些问题,或者至少考虑采用最佳实践。有什么想法吗? – Dunc 2011-09-21 13:29:29

+0

我并不完全知道谷歌如何跟踪点击次数,但这些是我可以想到的关于他们使用onmousedown的一些观点:他们对聚合点击百分比年龄感兴趣 - 少数或多或少无关紧要。使用onclick/onmousedown,没有可靠的方法来知道用户是否遵循链接(使用onclick可能会导致缺少右键单击并在新选项卡中打开,使用mousedown可能会导致每次右键单击都被注册作为链接)。然而,右键点击可能意味着用户对链接感兴趣。 – Raze 2011-09-21 17:08:27

+4

此外,mousedown事件可以让更多的时间在遵循链接之前向Google发送数据(在按下鼠标按钮之后和释放它之前的小时差) - 足以将请求发送到Google服务器。不确定onclick是否会为此留下足够的时间。雅虎所做的另一种选择是首先将您带到他们的服务器,然后将您重定向到您感兴趣的URL。 – Raze 2011-09-21 17:12:34