私は自分のサイトhttp://www.gfcf14greendream.com/を、javascript を使用して季節に応じて背景を変更することで変更しようとしています (また、背景が変更されるとすぐに、フォントの色に関する読み取りの問題を解消します)。作品)、単純な関数を回避しました:
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");
}
}
これは、この div の img タグを変更して、その年の日付に応じてページの背景を変更する必要があります。
<div id="background">
<img id="mainbg" src="https://i.stack.imgur.com/USDq5.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 タグを null にする必要があるのはなぜですか? 助けや提案を私に提供できる人に感謝します。