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/