【问题标题】:How to create a timer which starts automatically as soon as a specific webpage is loaded如何创建一个在加载特定网页后自动启动的计时器
【发布时间】:2018-10-31 05:09:04
【问题描述】:

我想创建一个计时器,它会在网页加载后自动启动,并在我点击该网页上的“提交”之前跟踪我在网页上花费的时间。这可以使用篡改猴子脚本吗?

我想跟踪填写表单链接所花费的时间。

【问题讨论】:

  • 嗨@Hyderabadi,欢迎来到 Stack Overflow。您可能需要稍微修改您的问题,然后才能期望该站点的用户尝试回答。我鼓励您查看提问指南:stackoverflow.com/help/asking。不要害怕在 cmets 寻求指导。
  • 是的,可以使用用户脚本,只需找到最适合您的代码并将其添加到 Tampermonkey 脚本中即可

标签: javascript html timer tampermonkey stopwatch


【解决方案1】:

您可以简单地在页面加载时设置一个新的日期变量,并在用户单击提交并找到差异时设置另一个。

<script>
var start;

window.onload = function(){
    start = new Date();
}

function myFunction() {
    var end = new Date();
    var diff = Math.abs(end - start);
    alert(diff);
}
</script>

<button onclick="myFunction()">Submit</button>

【讨论】:

  • 感谢您的帮助 Cody。它向我显示了一个带有四位数字的警报。我可以知道如何以秒或分钟为单位获取时间。
  • @Hyderabadi 检查我的帖子。它可能有用。但是如果你想使用日期作为源,你可以使用该类的格式,去查看这篇文章stackoverflow.com/questions/14638018/…
  • @Hyderabadi,这是经过的时间,以毫秒为单位。要获得秒数,请将结果除以 1000。
【解决方案2】:

在页面加载时设置计时器。 比,当点击提交时,只需停止计时器。

<script>
window.onload = function() {
  var incrementSecond = function () {
    window.secondsPassed += 1;
    console.log('+1 sec, now we have', window.secondsPassed);
  }

  window.secondsPassed = 0;
  window.myTimer = setInterval(incrementSecond, 1000);
}
var onSubmitClick = function() {
  window.clearInterval(window.myTimer); // always clean resources
  // call some other function to do the submit
}
</script>

<input type="submit" onClick="onSubmitClick"/>

【讨论】:

    【解决方案3】:

    看看这个codepen https://codepen.io/shivani137/pen/aYjaKG

    setInterval(function() {}, 1000)可以帮你实现这个功能

    【讨论】:

    • 感谢您的快速回复和指导。
    • 但是我有一个问题,我如何在 tamper monkey 中使用上述代码在网页加载时自动运行,并且我们可以显示一个数字计时器。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 2011-06-05
    相关资源
    最近更新 更多