用户不单击按钮时如何计数?

时间:2018-06-30 20:28:48

标签: javascript html

我正在针对以下指标: “最终用户放弃(未完成)的每日交易数” 所以我在考虑当用户没有点击按钮

时的计数
<form action="next.php">
  First name:<br>
  <input type="text" name="firstname" value="Mickey">
  <br>
  Last name:<br>
  <input type="text" name="lastname" value="Mouse">
  <br><br>
  <input type="submit" value="Submit">
</form> 

我一直在尝试实现这样的东西 html>

    <head>
        <script>
            function clickCounter() {
                if (typeof (Storage) !== "undefined") {
                    if (localStorage.clickcount) {
                        localStorage.clickcount = Number(localStorage.clickcount) + 1;
                    } else {
                        localStorage.clickcount = 1;
                    }
                    document.getElementById("result").innerHTML = "You have clicked the button " + localStorage.clickcount + " time(s).";
                } else {
                    document.getElementById("result").innerHTML = "Sorry, your browser does not support web storage...";
                }
            }
        </script>
    </head>
    <body>
        <p><button onclick="clickCounter()" type="button">Click me!</button></p>
        <div id="result"></div>
        <p>Click the button to see the counter increase.</p>
        <p>Close the browser tab (or window), and try again, and the counter will continue to count (is not reset).</p>
    </body>
</html>

,但无法正常工作。请帮助我

2 个答案:

答案 0 :(得分:0)

您可以使用onbeforeunload javascript事件检测何时关闭浏览器选项卡。 我认为这将对您尝试做的事情有所帮助。 有关w3schools

的更多信息

答案 1 :(得分:0)

localStorage在这里将不再有用,因为数据被本地保存在每个用户的计算机上。您仍然需要一些辅助脚本来将该信息发送到服务器,以便在其中获取信息……这可以更轻松地完成,而无需首先将其存储在本地。

该按钮的click事件肯定是 没有用,因为您正试图跟踪该事件何时发生。

onbeforeunload事件在这里的用途也很有限:它不会计算您要计算的内容,因为无论出于何种原因(无论是关闭窗口还是浏览至下一页。更重要的是,大多数浏览器都不允许在该事件上运行异步代码(例如ajax请求),因此无论如何您都无法捕获服务器上的任何信息。

幸运的是,您可能已经拥有了所需的所有信息,而根本没有在客户端添加任何代码!查看您的服务器日志。计算第1页的投放次数。计算第2页的投放次数。减去另一个,您将获得在步骤1之后有人被抛弃的次数。