2017-08-25 1 views
0

J'essaye de faire un hta avec un compte à rebours. J'ai une minuterie qui fonctionne bien en html mais quand je mets le code dans un hta ça donne une erreur. J'ai également essayé d'exécuter la version html à l'intérieur d'un iframe n un hta. Toute aide est appréciée.Javascript ne fonctionnera pas dans un 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

Pour utiliser 'querySelector', vous devez exécuter le HTA en mode IE8 au minimum. De plus 'textContent' n'était pas disponible avant IE9. Voir https://stackoverflow.com/questions/19567887/javascript-version-in-hta/19570684#19570684. – Teemu

Répondre

0

Vous devez ajouter vos scripts après votre corps et non pas avant. Je ne peux pas vraiment dire en fonction du code que vous avez posté, mais avec la balise de fermeture </script>, il semble que ce soit ce que vous avez fait.

0

Vous pouvez essayer de changer:

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

à

document.getElementById('time'); 

Il serait plus ... JavaScript vanille aussi changer la durée à un div avec inline-block.

+0

j'ai changé le js à ceci, sans résultats. fonctionne toujours en html, pas en hta. le bloc inline n'est pas non plus nécessaire pour ce projet. il correspond exactement là où il est censé. –

+0

Avez-vous une erreur? Pouvez-vous essayer de rendre toutes vos variables locales pour vous assurer qu'il n'y a pas d'interférences avec des variables du même nom quelque part? affichage var, var minutes ainsi de suite? Ne devrait pas le si vraiment ... –

+0

pas d'erreurs. la hta s'ouvre et affiche 60:00 d'amende, mais il ne change jamais après cela. –