Я пытался изменить свой сайт, http://www.gfcf14greendream.com/, используя javascript для изменения фона в зависимости от времени года (и для устранения проблем чтения с цветом шрифта , что, как только фон меняется работа), работали вокруг простой функции:Javascript: работа с изображениями - не могу вызвать метод setAttribute из null
function setSeasonTheme() {
var today = new Date();
var first = new Date(today.getFullYear(), 0, 1);
var dayYear = Math.round(((today - first)/1000/60/60/24) + .5, 0);
if (dayYear >= 1 && dayYear < 80)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/winterbg.png");
}
if (dayYear >= 80 && dayYear < 172)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/springbg.png");
}
if (dayYear >= 172 && dayYear < 264)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/summerbg.png");
}
if (dayYear >= 264 && dayYear < 355)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/fallbg.png");
}
if (dayYear >= 355 && dayYear <= 366)
{
document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/winterbg.png");
}
}
, который должен изменить фон страницы в зависимости от дня года он включен, модифицируя IMG тег на этой DIV :
<div id="background">
<img id="mainbg" src="http://www.gfcf14greendream.com/images/greentwi.png" class="stretch" alt="" />
</div>
Но тем не менее, отображается исходный URL-адрес изображения, http://www.gfcf14greendream.com/images/greentwi.png. Хотя через функцию, ее src должен быть http://www.gfcf14greendream.com/images/summerbg.png. Право, когда отладчик получает к этой линии, document.getElementById("mainbg").setAttribute('src', "http://www.gfcf14greendream.com/images/summerbg.png");
, я получаю эту ошибку:
Uncaught TypeError: Cannot call method 'setAttribute' of null
Почему это происходит? Зачем нужно, чтобы img-тег для фона был нулевым, если он отображает исходное изображение? Спасибо всем, кто может предоставить мне помощь или предложения.
Я предполагаю, что код выполняется до того, как ваша страница полностью загрузится – Musa