如何动态更改具有不同显示时间的iframe的内容

时间:2015-08-05 07:41:02

标签: javascript jquery html iframe

我有一个id为demo的iframe 我有一个5个html文件列表(promo1,promo2,promo3,promo4,promo5),它们将一个接一个地重复显示在iframe中。 每个html页面都有不同的时间间隔,它应该在框架中显示

以下是我的JavaScript代码,其中dict代表每个html及其显示时间。

以下代码导致一次多次调用demo函数

;(function($){

    "use strict";

    var index=1,
      dict={"promo1":70000,"promo2":46500,"promo3":18000,"promo4":93000,"promo5":86000},

    var $firstFrame = $("#demo");

    $(function (){

      function demo(frameId,index){

        frameId.attr("src","static/promo" + index + ".html");
        frameId.load(function(){

          if(index < 5){

            a = setTimeout(demo(frameId , index + 1),dict["promo"+index]);
          }
          else if(index == 5){
            var a = setTimeout(demo(frameId , 1),dict["promo"+index]);
          }
        });
     }

     demo($firstFrame , 1);
     });

}(window.jQuery));

1 个答案:

答案 0 :(得分:0)

您需要在函数中包装setTimeout操作。使用setTimeout时,您希望传递稍后要调用的函数。否则,您将立即调用demo并传递返回值。

setTimeout(function() {demo(frameId , 1),dict["promo"+index];});