【问题标题】:Javascript: Run setInterval only once [duplicate]Javascript:只运行一次 setInterval [重复]
【发布时间】:2013-01-08 14:02:50
【问题描述】:

可能重复:
setInterval - How to fire only once?

我只想运行以下代码一次,所以 2 秒后它会更改 iframe 的 src,但不会一次又一次地尝试这样做。

<script type="text/javascript">
    setInterval(function () {document.getElementById('iframe').src = "http://www.y.com";}, 2000);
    </script>

【问题讨论】:

    标签: javascript html iframe setinterval


    【解决方案1】:

    您正在寻找 setTimeout(),它正是这样做的。

    【讨论】:

      【解决方案2】:

      是的……

      window.setTimeout(function(){
              // code to run after 5 seconds...
      }, 5000);
      

      或者将你的方法带到外部环境

      function myMethod(){
          // code to run after 5 seconds...
      };
      
      window.setTimeout(myMethod, 5000);
      

      如果您有一个不打算仅在超时后执行的方法,则后者很有用。

      【讨论】:

      • 你的代码实际上运行了两次; )。不过,这不是我的反对意见。
      • 感谢您的提醒 :) 已编辑..
      • 第二种方法不正确,它会立即运行,并在 5 秒后再次运行,如果 myMethod 将返回对函数的引用:-(。
      • 嗯...只有你需要做的就是从 myMethod() 中删除括号 --> window.setTimeout(myMethod, 5000);,尽管当你需要将参数传递给 @987654326 时这是一个很好的形式@.
      【解决方案3】:

      使用setTimeout,您可以在Mozilla网站中查看更多详细信息。

      【讨论】:

        猜你喜欢
        • 2012-04-01
        • 1970-01-01
        • 2013-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-16
        • 2013-05-27
        • 2012-08-23
        相关资源
        最近更新 更多