javascript - 时间功能不起作用

标签 javascript html time

HTML 代码:

<body class="body" onload="buttonFunction(this)">
    <form>
        <p align="center"><strong>You have been on this page for </strong><input title="time spent on webpage" type="text" size="9" name="timespent"></p>
    </form>
</body>

JS代码:

function buttonFunction() {
    startday = new Date();
    clockstart = startday.getTime();
    initstopwatch();
    getSecs();
}


function initstopwatch() {
    var mytime = new Date();
    var timeNow = mytime.getTime();
    var timediff = timeNow - clockstart;
    this.diffsecs = timediff/1000;
    return(this.diffsecs);
}

function getSecs() {
    var mySecs = initstopwatch();
    var mySecs1 = ""+mySecs;
    mySecs1= mySecs1.substring(0,mySecs1.indexOf("."))+ " secs. ";
    document.forms[0].timespent.value = mySecs1;
    window.setTimeout('getSecs()',1000);
}

现在,这个函数应该计算用户在我的网页上的秒数,并将该变量输入到输入框中。然而,它似乎什么也没做。那么这个函数有什么问题呢?

最佳答案

根据 Thanasis Grammatopoulos 的评论,我之前的回答(如下)是错误的。我尝试通过修复分号位置来运行您的代码,它在 Safari 中运行。

window.setTimeout('getSecs()',1000; ) 

应该是

window.setTimeout('getSecs()',1000);

我之前的错误答案: setTimeout 只会调用 getSecs() 一次。我认为你想每秒调用一次,而不是一秒调用一次,在这种情况下你应该使用:

window.setInterval(getSecs,1000);

如果您想稍后停止间隔(可能是个好主意),您可以这样做:

var interval = window.setInterval(getSecs,1000);

稍后当您想停止计时器时,只需调用:

clearInterval(interval);

关于javascript - 时间功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41731673/

相关文章:

javascript - json 转换 javascript 数组

javascript - onClick 事件无法执行功能

javascript - 仅为一个 JS 文件动态加载 &lt;meta&gt; 属性

java - 检查 Java 字符串中是否存在时间

android - 计算两个日期之间耗时,在不同的设备上给出不同的结果

javascript - 使用 Javascript 数组计算集合差异的最快或最优雅的方法是什么?

javascript - Ruby on Rails,javascript 冲突

javascript - 使用 jQuery 获取和设置下拉值

javascript - HTML输入到php然后返回到input

C++ 设置每秒 While 循环的速度