Javascript 在同一iFrame中具有不同显示时间的多个HTML页面

Javascript 在同一iFrame中具有不同显示时间的多个HTML页面,javascript,jquery,iframe,Javascript,Jquery,Iframe,我有五个HTML页面和一个iFrame 我需要在iFrame中显示HTML页面,每个页面都有特定的显示时间。延迟应包括加载iFrame容器的时间。假设第一页的显示时间为10秒,第二页的显示时间为20秒,第三页的显示时间为30秒,依此类推 如何显示绑定到其显示时间的所有这些页面 我尝试了很多方法来添加加载时间,包括在代码中添加iframe.load,但它会导致一些奇怪的递归,从而改变显示时间。我建议仅在完成页面初始化的iframe.load之后加载第一个源代码。代码使用jQuery 这些日志当然是

我有五个
HTML
页面和一个iFrame

我需要在iFrame中显示
HTML
页面,每个页面都有特定的显示时间。延迟应包括加载iFrame容器的时间。假设第一页的显示时间为10秒,第二页的显示时间为20秒,第三页的显示时间为30秒,依此类推

如何显示绑定到其显示时间的所有这些页面


我尝试了很多方法来添加加载时间,包括在代码中添加iframe.load,但它会导致一些奇怪的递归,从而改变显示时间。

我建议仅在完成页面初始化的iframe.load之后加载第一个源代码。代码使用jQuery

这些日志当然是为了确保计时完全符合您的要求,只有最小的偏移量(当我测试它时是一位数毫秒)


var currentFrameId=0;
变量帧长度=[010000200000000040000]//第一页应在准备就绪后立即显示
var frameURLs=[”http://example.com/page1", "http://example.com/page2", "http://example.com/page3", "http://example.com/page4", "http://example.com/page5"];
函数nextFrame(){
if(currentFrameId==frameURLs.length)
返回;
log((new Date().getTime())+”:将iframe src设置为“+frameURLs[currentFrameId]+”(frame id“+currentFrameId+”));
$('#myiframe').attr('src',frameURLs[currentFrameId]);
currentFrameId++;
}
$(函数(){
log((new Date().getTime())+“:启动javascript”);
$('#myiframe').load(函数(){
log((new Date().getTime())+“:为帧id加载的iframe”+当前帧id);
setTimeout(nextFrame,framelength[currentFrameId]);
});
nextFrame();
});

请参阅

下的工作示例,您确实需要包含代码。您最近的一次尝试是什么?你能给我们看看吗?我们无法帮助您了解您的问题所在。另外,最好提供一个提琴,因为不清楚“它会导致一些扭曲的递归,从而改变显示时间”是什么意思
<iframe id="myiframe"></iframe>

<script>
var currentFrameId = 0;
    var frameLengths = [0,10000,20000,30000,40000];//The first page should be displayed as soon as ready
    var frameURLs = ["http://example.com/page1", "http://example.com/page2", "http://example.com/page3", "http://example.com/page4", "http://example.com/page5"];

    function nextFrame(){
        if(currentFrameId == frameURLs.length)
            return;
        console.log((new Date().getTime()) + ": setting iframe src to " + frameURLs[currentFrameId] + "(frame id " + currentFrameId + ")");
        $('#myiframe').attr('src',frameURLs[currentFrameId]);
        currentFrameId++;
    }

    $(function(){
        console.log((new Date().getTime()) + ": starting javascript");

        $('#myiframe').load(function(){
            console.log((new Date().getTime()) + ": iframe loaded for frame id " + currentFrameId);
            window.setTimeout(nextFrame, frameLengths[currentFrameId]); 
        });

        nextFrame();
    });
</script>