Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Код ответа сервера и обновление iframe (https://javascript.ru/forum/misc/57586-kod-otveta-servera-i-obnovlenie-iframe.html)

alexdemi911 10.08.2015 18:34

Код ответа сервера и обновление iframe
 
Здравствуйте
Хотел бы реализовать следующее: на странице, через iframe, выводится сайт, если сайт в iframe не загружается (код ответа сервера этого сайта не 200), то iframe должен автоматические перезагрузиться. И авто перезагрузка идет до тех пор, пока код ответа сайта в iframe не станет 200.
Возможно такое реализовать?
Нашел код автообновление страницы
<!DOCTYPE html>
<htm>
<head>
</head>
<body>

<iframe id="frame" src="" width=100% height=900></iframe>
<script type="text/javascript">
var lnk = 'http://javascript.ru/'; //Ваша ссылка;
function setSRC() {
   document.getElementById('frame').src=lnk;
} setSRC() 
setInterval(setSRC,20000);
</script>

</body>
</html>


Вычитал, что код ответа можно получить через XMLHttpRequest. Но совместить все вместе не получается, не хватает знаний

javaQest 10.08.2015 19:23

alexdemi911,
реализовать это легко, но есть одно но: кросдоменный запрос браузер дропнет.

Если со своего домена тянуть, то запросто
mkIftame=function(url){
  with(document){
   var ifr=createElement("iframe")
   ifr.src=url
   body.appendChild(ifr)
 }
  
}

fetch=function(url){
    with(new XMLHttpRequest){
      open("GET", url) 
      send(null)
      onreadystatechange=function(){
        if(readyState==4){
           console.log("test")
           if(status!=200) return setTimeout(function(){fetch(url)}, 3000) 
           mkIftame(url) 
        }
      }
    }
}

fetch("yoba")

alexdemi911 10.08.2015 20:04

Да, реализовать хочу на своем домене.
собрать в кучу так и не получилось :( Может кто-нибудь покажет итоговый вариант? Могу и копейкой отблагодарить)

javaQest 10.08.2015 21:00

Цитата:

Сообщение от alexdemi911
кучу так и не получилось

не понял, какая куча? что у тебя не получилось? это готовый, рабочий код, я его проверил перед постингом. Только он не перезагружает готовый айфрейм, а создает, при 200, мне показалось, что так эстетичней

alexdemi911 10.08.2015 21:53

видимо я что-то не так делаю. Загрузил к себе на хост, но результата нет.
Куда вставлять ссылку для проверки ответа сервера?

javaQest 10.08.2015 21:55

на место "yoba"

alexdemi911 10.08.2015 22:30

Большое спасибо, сам накосячил. Все работает:)


Часовой пояс GMT +3, время: 14:55.