仅在离开网站时的javascript事件

时间:2012-05-31 12:30:32

标签: javascript onunload

我正在创建自己的简单统计数据来记录读取的页面以及读取的时间等等。

然后我使用ajax调用在数据库中记录信息,它使用window.ONBEFOREUNLOAD事件,但是这会为每个访问的页面创建一个数据库记录,而是我想将页面统计信息保存到js变量然后当访客最终离开网站时,只进行1次ajax呼叫。

有没有办法使用纯javascript创建事件监听器来检测用户何时离开网站,可能是通过评估正文的点击事件???

2 个答案:

答案 0 :(得分:3)

默认情况下,浏览器无法提供此类事件:浏览器本身无法识别整个网站的内容,因此浏览器无法知道用户何时离开网站。

很容易在JavaScript中实现解决方案。实施很容易,解决方案很难。

您需要考虑如何判断用户何时离开您的网站。你如何定义退出点?你能定义退出点吗?这是一个非常重要的问题。我不确定是否存在解决方案。

答案 1 :(得分: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上找到