Обновить iframe, не теряя его текст / мерцание

Я запускаю радио-сайт и пытаюсь сделать так, чтобы контент (информация о радио) обновлялся автоматически.

В настоящее время это очень некрасиво в освежении.

Я хочу, чтобы содержимое фрейма радио содержало информацию до тех пор, пока оно не будет обновлено.

Вот мой код: PHP для контента с iframe: http://pastebin.com/fwBjMEUs

PHP для радиоинформации, которая должна быть обновлена: http://pastebin.com/XyfhG8Kn

1 ответ

Решение

Вам намного лучше использовать AJAX для этого. Это использует div вместо iFrame в качестве контейнера. Просто убедитесь, что файл PHP выводит только тот HTML-код, который вам нужен, внутри div, а затем добавьте этот скрипт на страницу, на которой вы хотите его отобразить:

<script>
function refreshinfo(){
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("currentinfo").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://www.x86cam.com/wp-content/plugins/radio-info.php",true);
xmlhttp.send();
}
setInterval(refreshinfo, 20000); /*How often to refresh in ms; currently 20 secs */
</script>

Затем замените свой iframe на <div id="currentinfo"></div> и у тебя все должно быть готово!

РЕДАКТИРОВАТЬ: я проверил страницу php, что вы извлекаете информацию, и все, что вам нужно сделать, это удалить <centre> а также </centre> теги от него, я думаю, но это может сработать!

Другие вопросы по тегам