2017-08-25 35 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罰款,但在此之後它不會改變。 –