如何遍历数组中的 URL,并在 iframe 中显示每个 URL

how can i iterate through the urls in an array, displaying each in an iframe?

本文关键字:URL 并在 iframe 显示 何遍历 遍历 数组      更新时间:2023-09-26

此代码的目的是循环访问 url 并将最新的 url 插入到 iframe 中。下面,我正在使用jquery的倒计时插件。

<?php
$count=0;
$urls[]="http://www.techcrunch.com";
$urls[]="http://www.livingsocial.com";
$urls[]="http://www.guardian.co.uk";
$urls[]="http://www.google.com";
$urls[]="http://www.rightmove.com";
$urls[]="http://www.godaddy.co.uk";
foreach ($urls as $count){
?>
<script type="text/javascript"> 
    $(function start() {
    var changetimer = new Date();
    changetimer.setSeconds(changetimer.getSeconds() + 10.5); 
    $('#defaultCountdown').countdown({until: changetimer, onExpiry: liftOff});
    $('#year').text(changetimer.getFullYear());
});
function liftOff() { 
    document.getElementById("mainview").src = '<?php echo($count); ?>';
} 
</script> 
<?php }  ?>
</head> 

以下是正文标签

<iframe id="mainview" width="800" height="400" src="http://www.holidays.com">
</iframe>

这里的问题是这段代码跳过了 url 列表,速度太快,你只能看到第一个和最后一个 url。到目前为止,中间的 url 是不可见的,倒数计时器只出现一次。我正在使用 jquery 倒计时插件。

如何放慢速度,并在进入下一个迭代之前单独显示倒计时的每次迭代?非常感谢。

问题是您将所有计时器设置为在同一时间关闭。 您需要将它们设置为不同的时间。 与其为每个数组添加 10.5 秒,不如添加"10.5*数组索引",以便每个数组等待的时间比前一个长一点。

这样做:

<?php
$count=0;
$urls[]="http://www.techcrunch.com";
$urls[]="http://www.livingsocial.com";
$urls[]="http://www.guardian.co.uk";
$urls[]="http://www.google.com";
$urls[]="http://www.rightmove.com";
$urls[]="http://www.godaddy.co.uk";
?>
<script type="text/javascript"> 
$(function start() {
    var changetimer = new Date();
    changetimer.setSeconds(changetimer.getSeconds() + 10.5); 
    var urls = <?php echo json_encode($urls); ?>;
    $.each(urls, function(i, url){
       setTimeout(function(){
          liftOff(url);
       } ,5000*i); //Change every 5 seconds
    });
    $('#year').text(changetimer.getFullYear());
});
function liftOff(url) { 
    document.getElementById("mainview").src = url;
} 
</script>