Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找到已完成的循环迭代-从带有Iframes页面的网页外部?_Javascript_Jquery_Html_Iframe - Fatal编程技术网

Javascript 如何找到已完成的循环迭代-从带有Iframes页面的网页外部?

Javascript 如何找到已完成的循环迭代-从带有Iframes页面的网页外部?,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,我想知道我的迭代何时从我的网页外部完成,我的迭代在框架的子iframe 这里是我的示例:单击第一个按钮,第二个按钮等待3秒 $(function(){ var total = 1000; var i = 0; var iterate = function(){ setTimeout(function(){ var place = $('#iFrame1').contents().find('#iFrame2').contents().find('body

我想知道我的
迭代何时从我的网页外部完成,我的迭代在
框架的子
iframe

这里是我的示例:单击第一个按钮,第二个按钮等待3秒

$(function(){

  var total = 1000; 
  var i = 0;

  var iterate = function(){

    setTimeout(function(){

      var place = $('#iFrame1').contents().find('#iFrame2').contents().find('body');
      place.append('<ul class="list"></ul>');

      for(i=0; i < total; i++) {
        place.find('.list').append('<li>'+i+'</li>');
      }

    }, 3000);
    //how to find all this done from outside of this function?
  }

  var iFrame1 = $('<iframe />', {id:'iFrame1'});

  var iFrame2 = $('<iframe />', {id:'iFrame2'});

  var button2 = $('<button />', {text:'Child Button', click:iterate});

  var button = $('<button />',
    {
      text:'Click Me',
      click:function(){

        $(this).parents('body').append(iFrame2);

        $('#iFrame1').contents().find('#iFrame2').contents().find('body').append( button2 );

      }

    }
  );


  setTimeout(function(){
    $('.container').append( iFrame1 );
    $('#iFrame1').contents().find('body').append(button);

  },1000);

});
$(函数(){
var总计=1000;
var i=0;
var iterate=函数(){
setTimeout(函数(){
var place=$('iFrame1').contents().find('iFrame2').contents().find('body');
place.append(“
    ”); 对于(i=0;i'+i+''); } }, 3000); //如何从函数外部找到所有这些操作? } 变量iFrame1=$('',{id:'iFrame1'}); 变量iFrame2=$('',{id:'iFrame2'}); var button2=$('',{text:'Child Button',click:iterate}); 变量按钮=$('', { 文本:'单击我', 单击:函数(){ $(this.parents('body').append(iFrame2); $('iFrame1').contents().find('iFrame2').contents().find('body').append(button2); } } ); setTimeout(函数(){ $('.container').append(iFrame1); $('iFrame1').contents().find('body').append(按钮); },1000); });
    place
    拥有所有
    li
    s之后,我如何从文档外部知道。我正在从chrome浏览器控制台运行我的代码,我创建了chrome浏览器控制台,试图回答这个问题。以下是我所做的:

  • 添加了此处理程序以在迭代完成时运行:

    var=done=function(){
    console.log(“迭代完成”);
    警报(“完成!”);
    };

  • 将此处理程序连接到一个自定义事件
    iterationDone
    ,该事件添加到
    button2
    之后:

  • var按钮=$(''{
    文本:“单击我”,
    单击:函数(){
    $(this.parents('body').append(iFrame2);
    $('iFrame1').contents().find('iFrame2').contents().find('body').append(button2);
    按钮2.on('iterationDone',done);
    }
    });

  • 迭代完成后立即触发自定义事件:

    setTimeout(函数(){
    var place=$('iFrame1').contents().find('iFrame2').contents().find('body');
    place.append(“
      ”); 对于(i=0;i'+i+'
    • '); }
      //触发自定义事件。
      button2.触发器('iterationDone'); }, 1000);

      这就是你想要达到的目标吗?

      我创建这个模型就是为了回答这个问题。以下是我所做的:

    • 添加了此处理程序以在迭代完成时运行:

      var=done=function(){
      console.log(“迭代完成”);
      警报(“完成!”);
      };

    • 将此处理程序连接到一个自定义事件
      iterationDone
      ,该事件添加到
      button2
      之后:

    • var按钮=$(''{
      文本:“单击我”,
      单击:函数(){
      $(this.parents('body').append(iFrame2);
      $('iFrame1').contents().find('iFrame2').contents().find('body').append(button2);
      按钮2.on('iterationDone',done);
      }
      });

    • 迭代完成后立即触发自定义事件:

      setTimeout(函数(){
      var place=$('iFrame1').contents().find('iFrame2').contents().find('body');
      place.append(“
        ”); 对于(i=0;i'+i+'
      • '); }
        //触发自定义事件。
        button2.触发器('iterationDone'); }, 1000);


        这就是你想要实现的吗?

        不,这都是错的。因为您正在从循环内部触发事件。我无法控制这些功能。我所需要的是,我需要听到来自职能部门之外的声音。我不理解“我需要听到来自职能部门之外的声音”。这是什么意思?当
        for
        循环终止时触发该事件。您希望在何时何地触发它?实际上,此函数在网页(不是我的网站)中运行,将我的
        js
        文件(动态)添加到该网页中,我需要添加一些作品,在完成所有循环后-明白了吗?(这是客户需求同一领域,不是CROS问题或任何问题)好的,也许会有帮助,您可以检查添加到您感兴趣的DOM部分的
      • 元素的数量,如果在给定的时间间隔内没有更新,您可以得出更新已完成的结论?是的,我只需要这种方法。对于我的问题如何处理,因为所有的都在IframeNo内部,这是完全错误的。因为您正在从循环内部触发事件。我无法控制这些功能。我所需要的是,我需要听到来自职能部门之外的声音。我不理解“我需要听到来自职能部门之外的声音”。这是什么意思?当
        for
        循环终止时触发该事件。您希望在何时何地触发它?实际上,此函数在网页(不是我的网站)中运行,将我的
        js
        文件(动态)添加到该网页中,我需要添加一些作品,在完成所有循环后-明白了吗?(这是客户需求同一领域,不是CROS问题或任何问题)好的,也许会有帮助,您可以检查添加到您感兴趣的DOM部分的
      • 元素的数量,如果在给定的时间间隔内没有更新,您可以得出更新已完成的结论?是的,我只需要这种方法。对于我这类的问题如何处理,既然都在o里面