【问题标题】:How to detect if a user leaves a page in PHP如何检测用户是否在 PHP 中离开页面
【发布时间】:2012-06-17 01:49:43
【问题描述】:

如果用户离开特定页面,我想执行此功能。这个函数基本上会改变我数据库中某一列中的所有数据。因此,如果用户离开此页面,我希望此功能由系统执行。有没有办法检测用户是否已经离开页面。

谢谢!

【问题讨论】:

标签: javascript


【解决方案1】:

有了 100% 的可靠性,不,这是不可能的。由于离开特定页面是客户端操作,因此您无法控制客户端的操作。您可以通过 Javascript 注册一个onbeforeunload 处理程序,并希望客户端浏览器支持它。但同样,对此的支持并不普遍。

【讨论】:

    【解决方案2】:

    您不能在 php 中执行此操作,但您可以使用 javascript 函数 onbeforeunload,这里是 example

    <script type="text/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>
    

    【讨论】:

      【解决方案3】:

      使用 PHP 无法做到这一点,因为它是一种服务器端语言。 您将需要使用 JavaScript。

      【讨论】:

        【解决方案4】:

        由于服务器端 php 只运行服务器脚本,然后将结果发送到浏览器,因此您无法单独使用 php 执行此操作。您可以使用 javascript 使用 onunload 事件向您的 php 脚本发送 ajax 请求,然后运行 ​​php 脚本以响应该请求。

        【讨论】:

          【解决方案5】:

          要涵盖用户离开特定页面以导航到同一网站内的另一个页面的情况,您可以尝试使用页面 ID 来实现这一点,将“page_to_be_left”的 ID 存储在会话变量中,并检查是否当前页面 ID 与会话 var 中存储的页面 ID 匹配。 如果没有匹配,则可以触发您的函数。

          【讨论】:

            【解决方案6】:

            您需要使用javascript函数 卸载前

            【讨论】:

            • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
            猜你喜欢
            • 2019-04-01
            • 1970-01-01
            • 2018-03-19
            • 1970-01-01
            • 2012-12-02
            • 2020-06-28
            • 2010-11-19
            • 2015-12-26
            相关资源
            最近更新 更多