#javascript #html #iframe #page-refresh
#javascript #HTML #iframe #обновление страницы
Вопрос:
Я ищу способ в js проверять каждые x секунд, изменилось ли содержимое моего iframe, и если да, обновите его, чтобы увидеть изменения. Я хочу это сделать, потому что простое обновление каждые x секунд делает его очень заметным и заставляет iframe каждый раз возвращаться к началу полосы прокрутки. src iframe находится в том же домене, поэтому у меня нет проблем с политикой того же происхождения.
Спасибо!
Ответ №1:
Это просто. Выполняйте вызовы Ajax для извлечения содержимого страницы через указанный интервал времени. Сравните новую длину содержимого с предыдущей и сбросьте src
атрибут iframe
, если есть какая-либо разница.
const URL = 'https://stackoverflow.com';
let content = '';
setTimeout(() => {
$.ajax({
url: URL,
type: 'GET',
success: (res) => {
if (content.length !== res.length) {
content = res;
$('#myframe').attr('src', URL);
}
},
error: (jqXHR, textStatus, errorThrown) => {
console.error(textStatus);
}
});
}, 5000); // Check difference and refresh iframe in 5 seconds interval
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<iframe id="myframe" src="https://stackoverflow.com"></iframe>