2017-08-25 33 views
0

我想用倒数计时器做一个hta。我有一个计时器,在html中正常工作,但是当我把代码放入hta时,它会给出错误。我也尝试在iframe中运行html版本。任何帮助表示赞赏。Javascript计时器不会在hta中运行?

function startTimer(duration, display) { 
 
    var timer = duration, minutes, seconds; 
 
    setInterval(function() { 
 
     minutes = parseInt(timer/60, 10) 
 
     seconds = parseInt(timer % 60, 10); 
 

 
     minutes = minutes < 10 ? "0" + minutes : minutes; 
 
     seconds = seconds < 10 ? "0" + seconds : seconds; 
 

 
     display.textContent = minutes + ":" + seconds; 
 

 
     if (--timer < 0) { 
 
      timer = duration; 
 
     } 
 
    }, 1000); 
 
} 
 

 
window.onload = function() { 
 
    var fiveMinutes = 60 * 60, 
 
     display = document.querySelector('#time'); 
 
    startTimer(fiveMinutes, display); 
 
};
</script> 
 
<body> 
 
<font color="red" size="7"> 
 
<big> 
 
    <div> <span id="time">60:00</span></div> 
 
</big> 
 
</font> 
 
</body> 
 

 

 
<body background="image1.jpg">

+0

要使用'querySelector',您必须至少在IE8模式下运行HTA。在IE9之前,'textContent'也不可用。请参阅https://stackoverflow.com/questions/19567887/javascript-version-in-hta/19570684#19570684。 – Teemu

回答

0

你需要你的身体后添加脚本,之前不是。根据您发布的代码,我无法真正辨别,但是在收尾标记</script>时,似乎这是您所做的。

0

你可以尝试改变:

display = document.querySelector('#time'); 

document.getElementById('time'); 

这将是更香草的JavaScript ...此外跨度变化与inline-block的一个div。

+0

我改变了这个js,没有结果。仍然在html中工作,而不是在hta中。此项目也不需要内联块。它适合它应该在的地方。 –

+0

你有什么错误吗?你可以尝试使所有的变量在本地,以确保在某个地方没有相同名称变量的干扰吗? var display,var minutes等等?不应该那个虽然真的... –

+0

没有错误。 hta打开并显示60:00罚款,但在此之后它不会改变。 –