Проблема, с которой вы сталкиваетесь, в основном связана с тем, что URL действительно не меняется. Это может:
- Даже не вызывать новый запрос из вашего тега img
- Служите из кеша вашего браузера
Так что, скорее всего, ваше изображение не меняется.
Один из способов исправить это - передать дополнительный фиктивный параметр запроса, который изменяется при каждом запросе.
Пример URL:
https://picsum.photos/200/300/?random&dummyParam=1
Вы можете увеличивать dummyParam каждый раз, чтобы он выглядел как новый URL-адрес тега img и браузера.
Пример кода:
var cb = 0;
setInterval(function() {
document.getElementsByTagName("body")[0].style.backgroundImage = "url(https://picsum.photos/200/300/?random&cb=" + (++cb) + ")";
}, 1000)
img {
width: 200px;
height: auto;
}
EDIT:
@ ответ mplungjan использует миллисекунды с 1970 года как случайный фиктивный параметр, и это может быть лучше, поскольку вам не нужно иметь отдельную переменную для отслеживания счетчика.
Пример кода:
document.getElementsByTagName("body")[0].style.backgroundImage = "url(https://picsum.photos/200/300/?random&cb=" + (+new Date()) + ")";