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里面