Как я могу перебрать URL-адреса в массиве, отображая каждый в iframe? - PullRequest
0 голосов
/ 08 мая 2011

Целью этого кода является циклический просмотр 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> 

ниже в теге body

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

Проблема в том, что этот код пропускает список URL-адресов так быстро, что вы видите только первый и последний URL-адрес. URL-адреса между ними пока не видны, и таймер обратного отсчета появляется только один раз. Я использую плагин обратного отсчета jquery.

Как мне замедлить это и показать каждую итерацию обратного отсчета индивидуально, прежде чем перейти к следующей? большое спасибо.

Ответы [ 2 ]

0 голосов
/ 08 мая 2011

Сделай так:

<?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> 
0 голосов
/ 08 мая 2011

Проблема в том, что вы настраиваете все свои таймеры на выключение в одно и то же время.Вам нужно установить их на разное время.Вместо добавления 10,5 секунд для каждого, возможно, добавьте «10,5 * индекс массива», чтобы каждый ожидал немного дольше, чем предыдущий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...