我修改了 SO, provided by SLaks 中的代码因此,即使用户更改了计算机上的时间,它也能正常工作。
<div id="timer"></div>
的时间仍然显示页面加载后的实时时间(即使用户更改了计算机上的时间)。
当时间改变时,出现警告(请看下面的代码)。 问题是:一旦时间改变,警报每秒出现无数次(但预计只有一次)。为什么会这样?
$(document).ready(function () {
var start = new Date;
var end = (new Date - start) / 1000;
setInterval(function () {
if (Math.abs(end - (new Date - start) / 1000 )>1) {
start = new Date - end * 1000;
alert(Math.abs(end - (new Date - start) / 1000 ));
}
end = (new Date - start) / 1000;
$('#timer').text(end + " Seconds");
}, 100);
});
最佳答案
这实际上非常简单 - 脚本执行暂停,直到消息框关闭。当您关闭它时,计时器已经延迟并且条件再次为真。您可以通过复制 alert[...]
行自行测试:如果您足够快地关闭第一条消息,第二条消息将显示低于 1 的内容。
只需将 alert
替换为一些基于 HTML 的 float 窗口,一切都会好起来的。
关于javascript - 自页面加载后的 JQuery Clock/Timer(即使用户更改其计算机上的时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14298803/