2009-10-28 31 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