-1

编码:

function overlay() {
    el = document.getElementById("overlay");
    el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
}

function win_open(URL) {
  window.open(URL, "_blank");
}

function link_redirect(linkaddress) {
  // display message
  {
    overlay();

    setTimeout(function() {overlay();
    }, 2000);

    setTimeout(win_open(linkaddress), 2000);
  }

  //return false;
}

问题是窗口打开但没有延迟。我也试过:

setTimeout(function() {win_open(linkaddress);}, 2000);

但不是。

我想要实现的是,当link_redirect(linkaddress)运行时,它会立即显示覆盖,等待 2 秒,隐藏覆盖并显示来自给定 url 的窗口_blank

4

1 回答 1

3

问题出在您的第二次setTimeout调用中,您正在调用该函数,win_open然后将其返回的值setTimeout作为回调传递给

你需要

function link_redirect(linkaddress) {
    overlay();

    setTimeout(function() {
        overlay();
        win_open(linkaddress)
    }, 2000);
    //return false;
}
于 2013-07-17T08:37:58.300 回答