2012-05-31 37 views
0

我創造我自己的簡單的統計記錄中讀取該網頁多長時間等只有在離開現場

然後我用一個AJAX調用記錄在數據庫中的信息JavaScript事件,它的工作使用window.ONBEFOREUNLOAD事件,但是這會爲訪問的每個頁面創建一個數據庫記錄,而我想將頁面統計信息保存爲js變量,然後只在訪問者最終離開網站時執行1個Ajax調用。

有沒有一種方法創建一個事件監聽器使用純JavaScript檢測用戶何時離開網站,也許通過評估身體的點擊事件?

回答

3

這是不可能的瀏覽器在默認情況下提供這樣的事件:在瀏覽器本身沒有什麼涵蓋整個網站的意識,這是因此不可能的瀏覽器知道何時用戶離開一個網站。

這很容易在JavaScript中實現您自己的解決方案。實施很簡單,解決方案很難。

您需要考慮如何判斷用戶何時離開您的網站。你如何定義出口點?你可以定義出口點嗎?這是一個不平凡的問題。我不確定存在解決方案。

0

方法1: 嘗試onbeforeunload事件:頁面被卸載

它還允許你問回來,如果用戶真的想離開之前它被激發。

this demo

或者,當他離開時,你可以發出一個Ajax請求。

方法2:

`if(window.screenTop > 10000) 
alert("Window is closed"); 
else 
alert("Window stillOpen");`

方法3: 請參閱此文章。 你正在尋找的特點是onbeforeunload

示例代碼:

<script language="JavaScript"> 
    window.onbeforeunload = confirmExit; 
    function confirmExit() 
    { 
    return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?"; 
    } 
</script> 

在這個答案的所有信息都在StackOverflow.com

+0

發現如果你的意思是離開意味着退出,然後這會幫助你。 –

+0

嗨,謝謝,但這就是我現在使用的,每當用戶瀏覽任何頁面時都會觸發,我期望做的是檢測用戶何時離開站點而不是當他們單擊同一站點上的另一頁時。 – crankshaft

+0

所以只是檢查當前的URL,如果它包含你的域名,那麼不給彈出或警報,否則給,隨着try..catch封閉,所以當它關閉,事件從catch塊觸發。 –