Mozilla和IE中的Javascript定时器倒计时-在Chrome中工作
下面的Javascript用于为我的php游戏格式化一系列计时器。当用户提交一个选项时,它会重置计时器,根据用户在当前时间提交时记录的时间,说准备倒计时1分钟。当计时器达到“0”时,它将重置为默认的就绪状态。它与CHrome完美配合,但Firefox和IE只显示Ready,不会更新计时器并开始倒计时。非常感谢您的帮助Mozilla和IE中的Javascript定时器倒计时-在Chrome中工作,javascript,firefox,countdown,Javascript,Firefox,Countdown,下面的Javascript用于为我的php游戏格式化一系列计时器。当用户提交一个选项时,它会重置计时器,根据用户在当前时间提交时记录的时间,说准备倒计时1分钟。当计时器达到“0”时,它将重置为默认的就绪状态。它与CHrome完美配合,但Firefox和IE只显示Ready,不会更新计时器并开始倒计时。非常感谢您的帮助 var d = new Date(); var tarray = new Array(); function loadTimers() { var timersrow
var d = new Date();
var tarray = new Array();
function loadTimers()
{
var timersrow = g('timersrow');
var html = '';
var list = tinfo.split('|');
var i;
var cell
for ( i=0; i<list.length; i++ ) {
data = list[i].split(',');
cell = ce('td');
cell.innerHTML = data[0];
timersrow.appendChild(cell);
//html += '<td id="tcell' + data[0] + '">' + data[0] + '</td>';
tarray[tarray.length] = new objTimer(data[0], data[1], cell);
}
//timersrow.innerHTML = html;
updateTimers();
}
function updateTimers() {
var i;
for ( i=0; i<tarray.length; i++ ) {
tarray[i].update();
}
setTimeout('updateTimers();', 250);
}
function objTimer(label, time, cell)
{
this.label = label;
this.time = Date.parse(time);
this.cell = cell;
function update()
{
var t = new Date();
var val = this.time - t.getTime();
if ( val > 0 ) {
this.cell.innerHTML = 'Next ' + this.label + ': ' + formatSeconds(val);
} else {
this.cell.innerHTML = 'Next ' + this.label + ': Ready';
}
}
this.update = update;
}
function formatSeconds(seconds)
{
var h = 0, m = 0,
seconds = parseInt(seconds / 1000);
if (seconds > 60 * 60 ) {
h = parseInt(seconds / (60 * 60));
seconds -= h * 60 * 60;
}
if ( h < 10 ) {
h = '0' + h;
}
if ( seconds > 60 ) {
m = parseInt(seconds / 60);
seconds -= m * 60;
}
if ( m < 10 ) {
m = '0' + m;
}
if ( seconds < 10 ) {
seconds = '0' + seconds;
}
return h + ':' + m + ':' + seconds;
}
loadTimers();
谢谢大家的帮助。我已经解决了这个问题,因为我认为在定义函数之前调用它们是关键问题之一,并且将舍入系统改为math.floor而不是parseInt
同样愚蠢的我-Var细胞没有';'这可能是最大的原因。我们非常喜欢jsfiddle/codepen:我同意,但是有很多页面和php变量等可以让这个脚本工作。我希望有人能看到我的javascript中的错误,这可能是firefox和ie不喜欢它的原因。除非我的日期格式有问题,否则必须排除可能没有错误:在使用函数之前声明它们,并将基数参数添加到parseInt调用中,如parseIntseconds/60,10。。但这可能无法解决问题。在这种情况下,您应该检查控制台。JS中有设置断点的调试选项。也许这与一些方法调用有关。例如,appendChild在旧版本FF&IE中不起作用,但作为一个例子。。也许你的变量有默认关键字的名称,你知道吗?也许其他人马上就看到了..顺便说一句:在你的函数格式中,你基本上是这样做的:seconds=parseIntparseIntseconds/1000/60*60*60*60;。。。2.事情可能是多余的