0

我想使用设置间隔,当间隔完成时,更改页面 - 但是,在下面的情况下,当我想在 myNumber >= 300 时更改页面时,它会在 1 个间隔运行后更改页面。

我会很感激任何帮助,谢谢

    var myNumber = 0;

function openportal() {

    var myInterval = window.setInterval(myzoom,2);
        document.location.href ="http://next page";

}

function myzoom () {

      if(myNumber>=300){
          clearInterval(myInterval);
      }
      myNumber++;

}
4

2 回答 2

1

问题是您正在调用document.location.href ="http://next page";openportal方法,该方法将设置间隔,然后将页面重定向到新位置。

var myNumber = 0, myInterval;

function openportal() {
    myInterval = window.setInterval(myzoom,2);    
}

function myzoom () {
    if(myNumber>=300){
        clearInterval(myInterval)
        document.location.href ="http://next page";
    }
    myNumber++;

}
于 2013-04-20T08:45:36.673 回答
0

setInterval方法是异步的。它不会等待间隔停止。

更改停止间隔的页面:

var myNumber = 0;
var myInterval;

function openportal() {

  myInterval = window.setInterval(myzoom,2);

}

function myzoom () {

  if(myNumber>=300){
    clearInterval(myInterval);
    document.location.href ="http://next page";
  }
  myNumber++;
}
于 2013-04-20T08:47:39.103 回答