2011-11-10 58 views

回答

5

這些特定的瀏覽器事件不可用,因爲它會很容易受到嚴重的侵犯隱私爲此在jQuery的。隱私是瀏覽器供應商持有神聖和關鍵銷售(諺語)的一點。所有瀏覽器都可以讓您知道用戶何時進入或離開您的頁面,Kamui指出了哪些技術細節。

在同一個網站,它可以實現一些瀏覽器的事件中使用的cookies和JavaScript跟蹤。例如追蹤閹用戶點擊超鏈接並將其標記爲一個forward事件,當用戶離開網頁時沒有點擊超鏈接它可能是一個:

  • 瀏覽器URL輸入
  • 回動作
  • 的JavaScript location.href代替

放在location.href代替,當你擁有對所有的JavaScript完全控制可以被跟蹤爲好,只要使用帶有跟蹤代碼的一個輔助方法,而不是直接chaning location.href。

這使得browser url inputback action。使用Cookie和請求標題(獲取引薦來源),可以近距離地找到forwardback事件,但不是100%,但實際上,99%確實足夠好。

找出refresh事件對請求標題(referrer)來說很簡單,如果當前url匹配referrrer,它是一個refresh事件。

現在我沒有提供任何代碼或明確的解決方案,但我概述了您可以如何在單個域上下文中跟蹤backforwardrefresh事件。它不會是一個快速簡單的實現方法,據我所知,沒有存在的框架可以可靠地跟蹤瀏覽器事件,甚至可以接近我上面描述的內容。

實現類似功能的更常見/懶惰的技術是創建一個single page應用程序,對此,有許多可用的框架。只是谷歌​​,但這是一個相當沉重的解決方案與其他影響,我現在不會進入。

+0

+1精彩摘要 – kamui

1

由於@sarfraz說,你不能捕捉後退和前進按鈕點擊,但你可以叫

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

要麼被點擊執行操作後退/前進/刷新按鈕時,應觸發,不幸你不能分辨他們是回去還是前進。請注意,不要在嘗試退出頁面時提醒消息它真的很煩人。

編輯 你也可以,如果你有它

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