Обновить 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>
теги от него, я думаю, но это может сработать!