Обновление нескольких фреймов - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть страница с несколькими фреймами.Фреймы захватывают изображения в формате JPEG с камер безопасности.Я хочу, чтобы фреймы обновлялись каждые 7 секунд, но затем время ожидания после 40 обновлений.Я использую сессионное хранилище для моего счетчика.Вот что я построил до сих пор.Однако фреймы не освежают.

<title>Oak Sec Cams (low-rez)</title>
<center><font color ="blue"> Oakland Security Cams (<b>Medium</b> / <a  href="tiny.html">Small</a>)</center>
<script type="text/javascript">

var intervalID = 0;

var iframes = document.getElementsByTagName("iframe");

function windowOnInitialize()
{
intervalID = setInterval(reloadiframes, 7000);
window.sessionStorage.setItem("intervalID", intervalID); 
//alert("we were called");
}

var counter = 0;

function reloadiframes()
{ 
var refreshCounter = window.sessionStorage.getItem("counter");
//alert(refreshCounter);
if (refreshCounter < 40)
{
    refreshCounter++;
    window.sessionStorage.setItem("counter", refreshCounter);
    location.reload();
    //alert(counter);


}
else
{

  clearInterval(intervalID);
window.sessionStorage.clear();

}
}

</script>

1 Ответ

0 голосов
/ 23 февраля 2019

Таким образом, причина того, что ваши iframes не обновляются каждые 7 секунд, заключается в том, что вы фактически не вызывали функцию где-либо в вашем коде.

function windowOnInitialize() {
  intervalID = setInterval(reloadiframes, 7000);
  window.sessionStorage.setItem("intervalID", intervalID); 
}

Хотя вы определили функцию windowOnInitialize, которую вам нужно добавитьэта строка внизу вашего скрипта

windowOnInitialize()

Кроме того, функция перезагрузки iframes не будет работать из-за использования "location.reload ();".Он перезагрузит текущий документ, который в данном случае является держателем фреймов.Что вам понадобится, так это какая-то итерация по элементам iframe, которая перезагрузит каждый из них в отдельности.Надеюсь, что это приведет вас на правильный путь:

 function reloadiframes() {
    var refreshCounter = window.sessionStorage.getItem("counter");
    if (refreshCounter < 40) {
        refreshCounter++;
        window.sessionStorage.setItem("counter", refreshCounter);
        for (var i = 0; i < iframes.length; i++) {
           iframes[i].src = iframes[i].src ; 
        }
    }
    else {
        clearInterval(intervalID);
        window.sessionStorage.clear();
    }
}
windowOnInitialize()
...