我一直在嘗試修改我的網站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");
}
}
應該根據今年則是在當日改變頁面的背景下,修改在這個div img標籤:
<div id="background">
<img id="mainbg" src="http://www.gfcf14greendream.com/images/greentwi.png" class="stretch" alt="" />
</div>
但是仍然會顯示圖像的原始網址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?感謝任何能夠提供幫助或建議的人。
我猜代碼在你的頁面完全加載之前執行 – Musa