Firefox

时间:2016-10-02 02:16:08

标签: javascript google-chrome date firefox gettime

所以我遇到了这个问题,

对于得分功能,我每秒增加一个,它适用于谷歌浏览器(版本53.0.2785.116米),Microsoft Edge(25.10586.0.0),但在Firefox(版本49.0.1)中不起作用。这可能是由于日期格式的差异造成的吗?

下面的代码是我在画布游戏中的基于时间的分数。该函数从执行开始获取日期,并且每秒增加1。

分数从0开始,每秒增加1,在浏览器中达到100是关键。

寻找可以在Firefox上运行的任何解决方案 - 目前得分'与Google Chrome和Edge不同,它显示为静态且不会向上计数。

有什么想法吗? - JS新手。 在此先感谢您的帮助。



var start = new Date().getTime(),
  score = '0.1';

var interval = window.setInterval(function() {
  var time = new Date().getTime() - start;
  
  score = Math.floor(time / 1000);
  
  if(score === 100) { 
    window.clearInterval(interval); 
    if(!alert("You win!\nPress 'OK' to play again")){
        window.location.reload();
    } 
  }

  document.getElementById('displayScore').innerHTML = score += '.00 Score';
});

<div id="displayScore"></div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

你需要在你的setIntetval中传递延迟,因为如果你没有firefox假定默认值为10(毫秒)

  

延迟   时间(以毫秒(千分之一秒)为单位),计时器应在指定函数或代码的执行之间延迟。如果此参数小于10,则使用值10。

这使得它每10ms运行一次非常低的值,所以当你进行像score = Math.floor(time / 1000);这样的计算时,结果值接近于零而你的var永远不会增加